httprouter のカスタム ハンドラーによる 404 エラーの処理
httprouter で構築された HTTP API では、404 (Not Found) エラーの処理にはカスタム ハンドラーが必要です。ドキュメントではこの可能性について言及していますが、その作成方法については明示的な説明がありません。
カスタム ハンドラーのセットアップ
404 エラーを手動で処理するには、次の手順を実行します。これらの手順:
次のシグネチャを持つ関数を定義します。
<code class="go">func(http.ResponseWriter, *http.Request)</code>
http を使用して関数を http.Handler に変換します。 HandlerFunc() ヘルパー関数。
<code class="go">func MyNotFound(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/plain; charset=utf-8") w.WriteHeader(http.StatusNotFound) // StatusNotFound = 404 w.Write([]byte("My own Not Found handler.")) // or with more detailed message w.Write([]byte(" The page you requested could not be found.")) }</code>
MyNotFound ハンドラーを httprouter の NotFound フィールドに割り当てます。
<code class="go">var router *httprouter.Router = ... // Your router value router.NotFound = http.HandlerFunc(MyNotFound)</code>
カスタム ハンドラーの手動呼び出し
ハンドラーでは、必要に応じて、ResponseWriter と *Request:
<code class="go">func ResourceHandler(w http.ResponseWriter, r *http.Request) { exists := ... // Find out if requested resource is valid and available if !exists { MyNotFound(w, r) // Pass ResponseWriter and Request // Or via the Router: // router.NotFound(w, r) return } // Resource exists, serve it // ... }</code>
これらを実装することで、MyNotFound ハンドラーを手動で呼び出すことができます。これらの手順を実行すると、httprouter ベースの API で 404 エラーを効果的に処理し、必要に応じて動作をカスタマイズできます。
以上がhttprouter のカスタム ハンドラーで 404 エラーを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。