다른 핸들 패턴을 사용하여 동일한 포트에서 웹 페이지 및 API 경로 제공
다음을 사용하여 동일한 포트에서 웹 페이지와 API 경로 모두 제공 고유한 핸들 패턴은 웹 개발의 일반적인 요구 사항입니다. net/http 패키지를 사용하여 Go에서 이를 달성하는 방법은 다음과 같습니다.
net/http 패키지는 들어오는 HTTP 요청에 대한 핸들러 세트를 관리하는 ServeMux 유형을 제공합니다. 처리기 등록은 Handle 메서드를 통해 수행됩니다. 문서에 따르면 긴 패턴이 짧은 패턴보다 우선합니다. 이 속성을 활용하여 동일한 포트에서 웹페이지와 API 경로를 동시에 제공할 수 있습니다.
예를 들어 루트 경로 / 아래의 웹페이지와 /api 아래의 API 경로를 제공하려면 다음 코드를 사용할 수 있습니다.
fs := http.FileServer(http.Dir("server/webapps/play_maths")) http.Handle("/", fs) // Handles web pages at root path apiRoutes := UserRoutes() // Initialize API routes as a handler http.Handle("/api", apiRoutes.ServeHTTP) // Handles API routes
UserRoutes 함수는 API 경로에 대한 하위 라우터를 생성합니다. 기본적으로 하위 라우터는 상위 라우터의 접두사를 상속하지만 PathPrefix 메서드를 사용하여 이 동작을 재정의할 수 있습니다. 그런 다음 라우터는 API 경로에 대한 핸들러로 사용됩니다.
API 경로 핸들러 전에 웹 페이지 핸들러를 등록하여 웹 페이지 핸들러가 더 짧은 패턴을 갖도록 함으로써 우리는 더 긴 패턴이 있다는 사실을 활용하고 있습니다. 우선권을 가지세요. 결과적으로 /api로 시작하는 요청은 API 경로 핸들러에 의해 처리되고 다른 모든 요청(루트 경로에 대한 요청 포함)은 웹 페이지 핸들러에 의해 처리됩니다.
이 접근 방식은 다음을 제공합니다. 여러 프로세스를 실행하거나 역방향 프록시를 사용할 필요 없이 동일한 서버에서 다양한 유형의 HTTP 요청을 처리하는 유연한 방법입니다.
위 내용은 Go의 동일한 포트에서 웹 페이지와 API 경로를 어떻게 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!