> 백엔드 개발 > Golang > 다른 패턴으로 동일한 포트에서 웹 페이지와 API 경로를 제공하는 방법은 무엇입니까?

다른 패턴으로 동일한 포트에서 웹 페이지와 API 경로를 제공하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-15 19:53:03
원래의
753명이 탐색했습니다.

How to Serve Web Pages and API Routes on the Same Port with Different Patterns?

다른 패턴으로 동일한 포트에서 웹 페이지 및 API 경로 제공

웹 애플리케이션에서는 정적 웹 페이지와 API 경로를 모두 제공하는 것이 종종 바람직합니다. 동일한 포트 주소를 사용하는 API 라우팅입니다. 이를 달성하려면 net/http 패키지에서 제공하는 패턴 일치 기능을 활용할 수 있습니다.

루트 URL("/")에 대한 파일 처리기를 등록하면 지정된 디렉터리의 정적 콘텐츠가 제공됩니다. 예:

fs := http.FileServer(http.Dir("server/webapps/play_maths"))
http.Handle("/", fs)
로그인 후 복사

API 경로를 제공하려면 mux.Router와 같은 라우터를 사용하여 별도의 핸들러를 생성할 수 있습니다. 예:

func UserRoutes() *mux.Router {
    router := mux.NewRouter().StrictSlash(true)
    router.HandleFunc("/user/create", api.CreateUser)
    router.HandleFunc("/user/get/all", api.GetAllUsers)
    return router
}
로그인 후 복사

이 API 라우터를 특정 패턴으로 등록하면 다양한 경로의 API 요청을 처리할 수 있습니다. 예:

http.Handle("/api", UserRoutes())
로그인 후 복사

net/http 문서에 따르면 긴 패턴이 짧은 패턴보다 우선합니다. 즉, "/api/"로 시작하는 모든 요청은 API 라우터에 의해 처리되고 다른 요청은 파일 핸들러로 전달됩니다.

이 접근 방식에서는 잠재적인 충돌을 방지하기 위해 신중하게 고려해야 합니다. 예를 들어, 정적 파일이 "/api/" 디렉터리에 배치된 경우 API 패턴이 우선 적용되므로 해당 파일에 더 이상 액세스할 수 없습니다.

위 내용은 다른 패턴으로 동일한 포트에서 웹 페이지와 API 경로를 제공하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿