ホームページ >バックエンド開発 >Golang >HTTProuter を使用して Go で HTTP 404 エラー処理をカスタマイズする方法

HTTProuter を使用して Go で HTTP 404 エラー処理をカスタマイズする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 13:56:31534ブラウズ

How to Customize HTTP 404 Error Handling in Go with HTTProuter?

HTTProuter による HTTP 404 処理のカスタマイズ

HTTProuter は、404 応答を手動で処理する機能を提供します。これを実現するには、カスタム ハンドラー関数を定義する必要があります。

HTTProuter の Router 構造体には、http.Handler 型の NotFound フィールドがあります。 http.Handler インターフェイスは、ServeHTTP(ResponseWriter, *Request) という単一のメソッドを定義します。したがって、カスタム ハンドラーはこの関数を実装する必要があります。

カスタム ハンドラーを作成するには、シグネチャ func(http.ResponseWriter, *http.Request) を持つ関数を定義します。 http.HandlerFunc() ヘルパー関数を使用して、この関数を http.Handler 値に変換します。例:

<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) // Set status to 404
    w.Write([]byte("My NotFound handler"))
}

router.NotFound = http.HandlerFunc(MyNotFound)</code>

このカスタム ハンドラーは HTTProuter によってトリガーされます。あるいは、ResponseWriter インスタンスと *Request インスタンスを渡すことで、他のハンドラーから手動で呼び出すこともできます:

<code class="go">func ResourceHandler(w http.ResponseWriter, r *http.Request) {
    if ... { // Check for resource availability
        router.NotFound(w, r)
        return
    }
    // ... Serve the resource
}</code>

以上がHTTProuter を使用して Go で HTTP 404 エラー処理をカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。