Bagaimana untuk Mengendalikan Ralat 404 dengan Pengendali Tersuai dalam httprouter?

Mary-Kate Olsen
Lepaskan: 2024-10-28 03:47:30
asal
772 orang telah melayarinya

How to Handle 404 Errors with Custom Handlers in httprouter?

Mengendalikan Ralat 404 dengan Pengendali Tersuai httprouter

Dalam API HTTP yang dibina dengan httprouter, mengendalikan ralat 404 (Tidak Ditemui) memerlukan pengendali tersuai . Dokumentasi menyebut kemungkinan ini, tetapi ia tidak memberikan arahan yang jelas tentang cara menciptanya.

Menyediakan Pengendali Tersuai

Untuk mengendalikan 404 ralat secara manual, ikuti langkah-langkah berikut:

  1. Tentukan fungsi dengan tandatangan berikut:

    <code class="go">func(http.ResponseWriter, *http.Request)</code>
    Salin selepas log masuk
  2. Tukar fungsi menjadi http.Handler menggunakan http. Fungsi pembantu 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>
    Salin selepas log masuk
  3. Tetapkan pengendali MyNotFound ke medan NotFound httprouter:

    <code class="go">var router *httprouter.Router = ... // Your router value
    router.NotFound = http.HandlerFunc(MyNotFound)</code>
    Salin selepas log masuk

Menggunakan Pengendali Tersuai Secara Manual

Dalam pengendali anda, anda boleh memanggil pengendali MyNotFound secara manual, jika perlu, dengan menghantar ResponseWriter dan *Permintaan:

<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>
Salin selepas log masuk

Dengan melaksanakan ini langkah, anda boleh mengendalikan ralat 404 dengan berkesan dalam API berasaskan httprouter anda dan menyesuaikan tingkah laku mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat 404 dengan Pengendali Tersuai dalam httprouter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan