>  기사  >  백엔드 개발  >  Go julienschmidt/httprouter에 라우터를 중첩하는 방법은 무엇입니까?

Go julienschmidt/httprouter에 라우터를 중첩하는 방법은 무엇입니까?

王林
王林앞으로
2024-02-08 23:24:25769검색

如何在 Go julienschmidt/httprouter 中嵌套路由器?

php 편집기 Yuzai는 Go 언어에서 julienschmidt/httprouter 중첩 라우터 사용에 대한 간결한 가이드를 제공합니다. julienschmidt/httprouter는 라우팅을 더 잘 구성하고 관리하는 데 도움이 되는 경량의 고성능 HTTP 요청 라우터입니다. 이 기사에서는 Go 언어에서 julienschmidt/httprouter를 사용하여 복잡한 라우팅 요구 사항을 더 잘 충족하기 위해 중첩 라우터 기능을 구현하는 방법을 자세히 소개합니다. 초보자이든 숙련된 개발자이든 관계없이 이 기사에서는 중첩 라우터 사용을 쉽게 익히는 데 도움이 되는 따라하기 쉬운 단계와 샘플 코드를 제공합니다. 시작하자!

질문 내용

내 서비스에서 다음 URL을 노출하고 싶습니다:

으아악

또한 이것을 다른 라우터 내에 중첩된 라우터로 구성하고 싶습니다. 최상위 라우터는 /api 的所有请求,并使用嵌套路由器为它们提供服务,该嵌套路由器将匹配对 /foo/bar에 대한 요청을 일치시킵니다. 기본적으로 네임스페이스입니다.

라우터를 하나만 보유하고 두 경로 모두에 /api 접두사를 제공할 수 있습니다.

으아악

하지만 단일 함수 호출로 적절한 미들웨어를 추가할 수 있도록 /api 접두사 내의 모든 경로에 대해 단일 라우터를 사용하고 싶습니다.

내가 시도한 방법은 다음과 같습니다.

으아악

그러나 http://localhost:8080/api/foo 또는 http://localhost:8080/api/bar에 접속하면 404를 찾을 수 없습니다

라우터가 http.handler인터페이스를 구현하기 때문에 중첩된 라우터가 작동할 것이라고 생각했습니다. 내가 놓친 게 무엇입니까?

해결 방법

httprouter는 경로를 연결하지 않으므로 그렇게 할 수 없습니다. 두 라우터 모두 요청 경로를 검사하고 그에 따라 행동합니다.

이를 실현할 수 있는 7세의 공개 끌어오기 요청이 있습니다. 거기를 보고 연결 경로를 기반으로 비슷한 논리를 직접 구현할 수 있습니다. 어쩌면 이를 위한 작은 도우미 함수를 작성할 수도 있습니다.

라우터 패키지를 전환하려는 경우 라우터 그룹을 지원하는 chi와 같은 대안을 고려할 수 있습니다.

위 내용은 Go julienschmidt/httprouter에 라우터를 중첩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제