Go 언어의 웹 프레임워크인 go-chi에서는 하위 경로에 대해 서로 다른 미들웨어를 설정하는 것이 일반적인 요구 사항입니다. 미들웨어는 HTTP 요청과 응답을 처리하고 요청이 대상 프로세서에 도달하기 전후에 몇 가지 추가 작업을 수행할 수 있는 기능입니다. 다양한 하위 경로에 대해 서로 다른 미들웨어를 설정함으로써 비즈니스 요구에 따라 각 하위 경로를 개인화할 수 있습니다. 이 기사에서는 보다 유연한 라우팅 처리를 달성하기 위해 go-chi의 하위 경로에 대해 다양한 미들웨어를 유연하게 설정하는 방법을 소개합니다.
mustBeSecure
을 사용하여 구성을 통해 비활성화할 수 있는 프록시 서버가 있습니다. 나는 이 프록시가 특정 하위 도메인인 "/application/health"에서 다르게 동작하여 항상 안전하지 않게 되기를 원합니다. 지금까지 시도한 모든 변경 사항은 실패했습니다. 여전히 프록시를 사용하지만 인증이 필요하지 않은 "/application/health"에 대해 다른 그룹을 구성하는 방법이 있습니까?
요청에 따라 다음은 setProxy()의 예입니다.
router := chi.NewRouter() router.Route("/", func(r chi.Router) { r.Use(chimw.Recoverer) router.Use(hlog.NewHandler(log.Logger)) if mustBeSecure() { r.Use(keycloak.MustStandardKeycloakAuth("url")) } setProxy(r) r.Group(func(r chi.Router) { r.Get("/health", handleHealth()) }) }) return http.ListenAndServe("0.0.0.0", router)
이것을 시도하고 계시리라 믿습니다.
/application
경로에 라우터를 사용하세요GET /health
/application
에서)이해를 돕기 위해 코드를 약간 단순화했습니다. setProxy
기능은 계속 사용할 수 있습니다.
위 내용은 go-chi의 하위 경로에 대해 다른 미들웨어 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!