이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
경로는 ProxyEndpoint
에서 TargetEndpoint
로 보내는 요청의 경로를 결정합니다. 경로에는 API ProxyEndpoint
에 액세스하는 데 사용되는 URL과 TargetEndpoint
로 정의된 백엔드 서비스의 URL이 포함됩니다.
ProxyEndpoint
와 TargetEndpoint
간의 관계를 설명하는 경로에 대한 소개 동영상을 시청하세요.
API 프록시 엔드포인트의 URL 확인
다음 이미지는 앱에서 ProxyEndpoint
로 들어오는 요청과 해당 요청이 백엔드 서비스로 전달되는 것을 보여줍니다.
Apigee에서 API 프록시를 만든 후 앱이 프록시에 액세스하는 데 사용하는 기본 URL의 형식은 다음과 같습니다.
https://www.example.com/shopping/cart/addItem |_____________| |___________| |_____| | | | hostname basepath resource
각 항목의 의미는 다음과 같습니다.
- 호스트 이름은 DNS에 추가한 도메인이거나 IP 주소입니다.
- 기본 경로 및 리소스 경로는 API 프록시를 만들 때 정의됩니다.
Apigee에 요청이 수신되면 Apigee가 URL을 파싱하여 올바른 ProxyEndpoint
에 요청을 전송합니다. 예를 들어 다음 URL은 API 프록시에 액세스하는 데 사용됩니다.
http://example.com/v1/weather/forecastrss
위 그림의 API 프록시에 대한 ProxyEndpoint
정의를 검토하면 URL이 어떻게 파싱되는지 알 수 있습니다.
- URL의 도메인 부분인
http://example.com
은 환경 그룹에 정의된 호스트 이름에 해당합니다. 프록시가 해당 환경 그룹 내 하나 이상의 환경에 배포되었습니다. 자세한 내용은 환경 및 환경 그룹 정보를 참조하세요. - URL의 두 번째 부분인
/v1/weather
는ProxyEndpoint
의<BasePath>
요소에 의해 결정됩니다. 프록시를 만들 때 기본 경로를 정의했습니다. 동일한 환경에 있는 두 API 프록시가 동일한 기본 경로를 가지지 않도록 기본 경로는 환경의 API 프록시마다 고유해야 합니다. - URL의 세 번째 부분인
/forecastrss
는<Flows>
요소로 정의된 해당 조건부 흐름을 사용해 API 프록시에서 정의한 리소스입니다.
동영상: 짧은 동영상을 시청하여 API 프록시 엔드포인트에 대해 자세히 알아보세요.
대상 엔드포인트의 URL 확인
ProxyEndpoint
정의의 <RouteRule>
요소는 API 프록시 대상을 결정하며 ProxyEndpoint
요청의 PreFlow, 조건부 흐름, PostFlow 내 모든 정책이 처리된 후 평가됩니다.
ProxyEndpoint
는 대상을 다음과 같이 정의할 수 있습니다.
- 백엔드 서비스의 직접 URL
- 단일
TargetEndpoint
정의 - API 프록시가 조건에 따라 대상 엔드포인트에 요청을 위임하는 여러
TargetEndpoint
- Null 경로 또는 대상으로, 요청이 대상으로 전달되지 않음을 의미합니다. 대신 요청의 모든 처리와 응답 생성이 Apigee에서 수행됩니다.
동영상: 짧은 동영상을 시청하여 대상 엔드포인트에 대해 자세히 알아보세요.
직접적인 URL
ProxyEndpoint
는 이름이 지정된 TargetEndpoint
구성을 우회하여 백엔드 서비스를 직접 호출할 수 있습니다. 예를 들어 다음 <RouteRule>
은 항상 http://example.com/myAPI:
에 대한 HTTP 호출을 수행합니다.
<RouteRule name="default"> <URL>http://example.com/myAPI</URL> </RouteRule>
하지만 TargetEndpoint
가 없으므로 ProxyEndpoint
로 정의된 흐름에만 정책을 추가할 수 있습니다.
단일 대상
위 그림과 같이 단일 대상 정의에서 ProxyEndpoint
는 이름으로 단일 TargetEndpoint
정의를 참조합니다.
<RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule>
이 API 프록시에 대한 모든 요청은 동일한 TargetEndpoint
정의로 전달됩니다. TargetEndpoint
의 <URL>
태그는 백엔드 서비스의 위치를 결정합니다. 위의 그림에서 대상 URL은 http://weather.yahooapis.com
입니다.
조건부 대상
<RouteRule>
태그를 사용하면 조건에 따른 대상에 요청을 전달할 수 있습니다. 흐름 변수, 쿼리 매개변수, HTTP 헤더, 메시지 콘텐츠 또는 시간과 언어 같은 문맥 정보를 사용하여 대상 엔드포인트를 확인할 수 있습니다. 예를 들어 요청 URL에 미국 및 영국과 같은 지리적 영역을 포함할 수 있습니다. 그런 다음 리전을 기준으로 대상 엔드포인트로 요청을 라우팅할 수 있습니다.
다음 라우팅 규칙은 요청의 HTTP 헤더를 평가합니다. HTTP 헤더 routeTo
의 값이 TargetEndpoint1
인 경우 요청은 TargetEndpoint1
이라는 이름의 TargetEndpoint
로 전달됩니다. 그렇지 않으면 요청이 TargetEndpoint2
로 전달됩니다.
<RouteRule name="MyRoute"> <Condition>request.header.routeTo = "TargetEndpoint1"</Condition> <TargetEndpoint>TargetEndpoint1</TargetEndpoint> </RouteRule> <RouteRule name="default"> <TargetEndpoint>TargetEndpoint2</TargetEndpoint> </RouteRule>
여러 라우팅 규칙이 있는 경우 조건이 없는 라우팅 규칙으로 기본 규칙을 만듭니다. 규칙은 ProxyEndpoint
에서 하향식으로 평가되므로 기본 라우팅 규칙이 조건부 경로 목록에서 마지막으로 정의되었는지 확인합니다.
동영상: 짧은 동영상을 시청하여, 조건부 대상을 사용하여 대상 엔드포인트로 라우팅하는 방법을 알아보세요.
Null 경로
null 경로는 요청 메시지를 TargetEndpoint
로 전달할 필요가 없는 시나리오를 지원합니다. 예를 들어 ProxyEndpoint
가 자바스크립트를 사용하여 외부 서비스를 호출하는 등 필요한 모든 처리를 수행할 때 유용합니다.
다음 예시에서는 null 경로를 정의합니다.
<RouteRule name="GoNowhere"/>