Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyesuaikan 404 (Tidak Ditemui) Respons dalam Go dengan httprouter?

Bagaimana untuk Menyesuaikan 404 (Tidak Ditemui) Respons dalam Go dengan httprouter?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 02:24:02963semak imbas

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

Menyesuaikan "Tidak Ditemui" (404) Pengendalian dengan httprouter

Apabila membangunkan API menggunakan perpustakaan httprouter, kendalikan 404 (Not Found) respons adalah tugas yang penting. Walaupun dokumentasi menyebut kemungkinan mengendalikan 404s secara manual, melaksanakan pengendali tersuai boleh menjadi mencabar.

Memahami Medan NotFound

Struktur httprouter.Router termasuk medan bernama NotFound, yang jenis http.Handler. Ini bermakna bahawa nilai untuk NotFound mesti melaksanakan kaedah ServeHTTP yang terdapat dalam antara muka http.Handler.

Mencipta Pengendali "Tidak Ditemui" Tersuai

Untuk menentukan sendiri pengendali tersuai, anda boleh mencipta fungsi dengan tandatangan yang sepadan dengan kaedah ServeHTTP:

<code class="go">func MyNotFound(w http.ResponseWriter, r *http.Request) {
    // ... Custom handling logic
}</code>

Menukar Fungsi kepada Pengendali

Untuk menukar fungsi anda kepada nilai yang melaksanakan antara muka http.Handler, anda boleh menggunakan fungsi pembantu http.HandlerFunc():

<code class="go">router := httprouter.New()
router.NotFound = http.HandlerFunc(MyNotFound)</code>

Invokasi Manual Pengendali Tersuai

Jika anda mahu hubungi pengendali tersuai anda secara manual dari dalam pengendali lain, berikan pengendali ResponseWriter dan *Permintaan:

<code class="go">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
}</code>

Kesimpulan

Dengan mengikuti langkah ini, anda boleh memperibadikan proses pengendalian "Tidak Ditemui" dengan berkesan dalam API berasaskan httprouter anda, memastikan pengguna menerima respons yang sesuai apabila cuba mengakses sumber yang tidak wujud.

Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan 404 (Tidak Ditemui) Respons dalam Go dengan httprouter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn