Gin では、反復的な if ステートメントを書かずに、各ルートのすべての HTTP エラーを処理することは可能ですか? 400、404、500 などのエラー?目標は、専用のミドルウェア関数内でエラーをキャプチャして処理することです。
はい、ミドルウェアを使用してエラー処理を一元化し、ルート ハンドラーで if ステートメントを繰り返す必要がなくなります。方法は次のとおりです。
ErrorHandler というミドルウェア関数を作成します。
メイン関数に ErrorHandler ミドルウェアを登録します。
ルート ハンドラーでは、外部エラー ハンドラーを呼び出す代わりに、単にエラーでリクエストを中止します:
ErrorHandler ミドルウェアで、コンテキストでキャプチャされたエラーを検査します。
ログを組み込んだり、カスタム引数をミドルウェアに渡すこともできます。必要:
さらに、c.JSON を呼び出すときにステータス コードとして -1 を使用して、エラー ハンドラーで明示的に設定された HTTP ステータスを上書きしないことを検討してください。
ルート ハンドラーで c.Error を使用すると、複数のエラーをキャプチャし、エラー ミドルウェアでまとめて処理できます。
エラー処理にミドルウェアを使用すると、コードベースが合理化され、次のことが可能になります。エラー処理プロセスをカスタマイズおよび拡張し、エラー管理の一元的な制御ポイントを提供します。
以上がGin ミドルウェアは、「if」ステートメントを繰り返すことなくすべての HTTP エラーを処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。