httprouter의 사용자 정의 핸들러로 404 오류 처리
httprouter로 구축된 HTTP API에서 404(찾을 수 없음) 오류를 처리하려면 사용자 정의 핸들러가 필요합니다. . 문서에서는 이러한 가능성을 언급하지만 생성 방법에 대한 명시적인 지침은 제공하지 않습니다.
사용자 정의 처리기 설정
404 오류를 수동으로 처리하려면 다음을 따르세요. 다음 단계를 따르세요.
다음 서명으로 함수를 정의하세요.
<code class="go">func(http.ResponseWriter, *http.Request)</code>
http.handler를 사용하여 함수를 http.Handler로 변환합니다. 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>
httprouter의 NotFound 필드에 MyNotFound 핸들러를 할당합니다.
<code class="go">var router *httprouter.Router = ... // Your router value router.NotFound = http.HandlerFunc(MyNotFound)</code>
사용자 정의 핸들러 수동 호출
핸들러에서 필요한 경우 ResponseWriter 및 *Request를 전달하여 MyNotFound 핸들러를 수동으로 호출할 수 있습니다.
<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>
이를 구현하여 단계를 거치면 httprouter 기반 API에서 404 오류를 효과적으로 처리하고 필요에 따라 동작을 사용자 정의할 수 있습니다.
위 내용은 httprouter에서 사용자 정의 핸들러를 사용하여 404 오류를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!