Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengendalikan Ralat 404 dengan Pengendali Tersuai dalam httprouter?

Bagaimana untuk Mengendalikan Ralat 404 dengan Pengendali Tersuai dalam httprouter?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 03:47:30716semak imbas

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>
  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>
  3. Tetapkan pengendali MyNotFound ke medan NotFound httprouter:

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

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>

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!

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