HTTP 라우터로 404 처리
HTTP 라우터 라이브러리는 API 개발을 위한 강력한 라우팅 기능을 제공합니다. 일반적인 작업 중 하나는 404(찾을 수 없음) 응답을 처리하는 것입니다. 문서에는 사용자 정의 404 핸들러 정의 가능성이 간략하게 언급되어 있지만 구현 세부 사항은 혼란스러울 수 있습니다.
사용자 정의 핸들러 인터페이스 이해
httprouter.Router 구조체에는 다음이 포함됩니다. http.Handler 인터페이스인 NotFound라는 필드입니다. 이 인터페이스는 ResponseWriter 및 요청을 인수로 사용하는 ServeHTTP()라는 단일 메소드를 정의합니다.
사용자 정의 404 핸들러 생성
사용자 정의 404 핸들러를 생성하려면 , ServeHTTP() 메서드 시그니처로 함수를 정의하고 http.HandlerFunc() 도우미 함수를 사용하여 이를 http.Handler 값으로 변환합니다.
구현 예:
<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.")) w.Write([]byte(" The page you requested could not be found.")) }</code>
사용자 정의 핸들러 설정
다음으로, HTTP 라우터 객체의 NotFound 필드에 사용자 정의 핸들러를 할당합니다:
<code class="go">router := httprouter.New() router.NotFound = http.HandlerFunc(MyNotFound)</code>
수동 사용자 정의 핸들러 호출
다른 HTTP 핸들러 내에서 사용자 정의 404 핸들러를 수동으로 호출해야 하는 경우 ResponseWriter 및 요청을 전달하여 수행할 수 있습니다.
<code class="go">func ResourceHandler(w http.ResponseWriter, r *http.Request) { exists := ... // Check for resource existence if !exists { MyNotFound(w, r) // Pass ResponseWriter and Request return } // Resource exists, serve it // ... }</code>
위 내용은 HTTP 라우터에서 404 오류를 사용자 정의 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!