Go 미들웨어 패턴과 오류 반환 요청 핸들러를 결합하는 방법
Go 미들웨어 패턴은 래핑 및 전처리를 위한 강력한 도구입니다. HTTP 요청. 그러나 기존 미들웨어 핸들러는 오류를 반환할 수 없으므로 오류 처리가 복잡해질 수 있습니다.
오류 반환 요청 핸들러
핸들러가 오류를 반환할 수 있도록 하려면 사용자 정의 핸들러 유형:
type errorHandler func(http.ResponseWriter, *http.Request) error
이 유형을 사용하면 핸들러가 패닉이나 로깅을 사용하는 대신 오류를 생성할 수 있습니다.
오류 미들웨어
이러한 오류를 처리하려면 오류 반환 처리기 유형을 수용할 수 있는 특수 미들웨어가 필요합니다.
func errorHandler(h errorHandler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { err := h(w, r) if err != nil { // Handle error appropriately (e.g., log, send error response) } }) }
이 미들웨어는 오류 반환 핸들러를 래핑하고 오류를 처리합니다. 생성합니다.
사용법
오류 반환 핸들러가 있는 미들웨어 체인을 사용하려면 최종 핸들러를 오류 미들웨어로 래핑하고 다른 미들웨어와 체인으로 연결하기만 하면 됩니다.
// Create a middleware chain. moreMiddleware(myMiddleware(errorHandler(myHandlerReturningError)))
라우터 통합
단순화를 위해 이 패턴을 지원하고 미들웨어 체인을 자동으로 구축하는 자체 라우터를 만드는 것을 고려해 보십시오.
라우터 예
https://github.com/fragmenta/mux/blob/master/mux.go
이 예시 라우터는 미들웨어 체인을 구축하고 오류를 효율적으로 처리하는 방법을 보여줍니다. 오류 처리를 위해 사용자 정의 핸들러 유형을 사용할 때의 이점을 보여주고 미들웨어 사용을 단순화합니다.
위 내용은 Go 미들웨어는 요청 핸들러가 반환한 오류를 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!