」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 httprouter 在 Go 中自訂 404(找不到)回應?

如何使用 httprouter 在 Go 中自訂 404(找不到)回應?

發佈於2024-11-01
瀏覽:292

How to Customize 404 (Not Found) Responses in Go with httprouter?

自訂「Not Found」(404) 使用httprouter處理

使用httprouter庫開發API時,處理404(Not Found)回應是一項至關重要的任務。雖然文件提到了手動處理 404 的可能性,但實現自訂處理程序可能具有挑戰性。

瞭解 NotFound 欄位

httprouter.Router 架構包含一個名為NotFound,其型別為http.Handler。這表示 NotFound 的值必須實作 http.Handler 介面中存在的 ServeHTTP 方法。

建立自訂「Not Found」處理程序

定義您自己的處理程序自訂處理程序,您可以建立一個具有與ServeHTTP 方法相符的簽章的函數:

func MyNotFound(w http.ResponseWriter, r *http.Request) {
    // ... Custom handling logic
}

將函數轉換為處理程序

要將函數轉換為實作http.Handler 介面的值,您可以使用http.HandlerFunc() 幫助器函式:

router := httprouter.New()
router.NotFound = http.HandlerFunc(MyNotFound)

手動呼叫自訂處理程序

如果您希望從其他處理程序中手動呼叫自訂處理程序,請提供處理程序帶有ResponseWriter 和*Request:

func ResourceHandler(w http.ResponseWriter, r *http.Request) {
    // ... Code to determine resource validity

    if !resourceExists {
        MyNotFound(w, r) // Manual invocation of custom handler
        return
    }

    // ... Resource exists, serve it normally
}

結論

透過執行下列步驟,您可以在基於httprouter 的API 中有效地自訂「未找到」處理流程,確保使用者在下列情況下收到適當的回應:嘗試存取不存在的資源。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3