경로 이해

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

경로는 ProxyEndpoint에서 TargetEndpoint로 보내는 요청의 경로를 결정합니다. 경로에는 API ProxyEndpoint에 액세스하는 데 사용되는 URL과 TargetEndpoint로 정의된 백엔드 서비스의 URL이 포함됩니다.

ProxyEndpoint와 TargetEndpoint 간의 관계를 설명하는 경로에 대한 소개 동영상을 시청하세요.

API 프록시 엔드포인트의 URL 확인

다음 이미지는 앱에서 ProxyEndpoint로 들어오는 요청 및 백엔드 서비스로 전달되는 요청을 보여줍니다.

Edge에서 API 프록시를 만든 후 앱이 프록시에 액세스하는 데 사용하는 기본 URL의 형식은 다음과 같습니다.

http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

각 항목의 의미는 다음과 같습니다.

  • {org-name}은 조직 이름입니다. Edge에서 계정을 만들 때 이 이름이 생성됩니다.
  • {env-name}은 에지 환경 이름입니다. 기본적으로 클라우드에서 생성된 모든 Apigee 조직은 'test' 및 'prod'의 두 가지 환경으로 프로비저닝됩니다. API 프록시를 배포할 때 하나 또는 두 환경 모두에 배포할지 정할 수 있습니다.
  • {base-path}{resource-path}는 API 프록시를 만들 때 정의됩니다.

요청이 Edge에 수신되면 Edge는 URL을 파싱하여 요청을 올바른 ProxyEndpoint로 전달합니다. 예를 들어 다음 URL은 Edge에서 API 프록시에 액세스하는 데 사용됩니다.

http://myOrg-prod.apigee.net/v1/weather/forecastrss

위 그림에서 API 프록시의 ProxyEndpoint 정의를 살펴보면 Edge에서 이 URL을 파싱하는 방법을 확인할 수 있습니다.

  1. URL의 도메인 부분 http://myOrg-prod.apigee.net는 Edge의 가상 호스트에 해당합니다. 위의 ProxyEndpoint 정의에서 API 프록시는 <VirtualHost> 태그를 사용하여 default라는 가상 호스트를 참조합니다. 환경에 여러 가상 호스트를 정의할 수 있습니다.

    가상 호스트는 API 프록시가 노출되는 도메인과 포트를 정의합니다. 또한 가상 호스트는 API 프록시에 액세스하는 데 HTTP 프로토콜을 사용할 것인지 또는 암호화된 HTTPS 프로토콜을 사용할 것인지 정의합니다. 가상 호스트에 대한 자세한 내용은 가상 호스트 (베타) 정보를 참고하세요.
  2. URL의 두 번째 부분인 /v1/weather는 ProxyEndpoint의 <BasePath> 요소에 의해 확인됩니다. 두 API 프록시가 동일한 기본 경로를 가지지 않도록 기본 경로는 환경의 API 프록시마다 고유해야 합니다.
  3. URL의 세 번째 부분인 /forecastrss<Flows> 태그로 정의된 해당 Conditional Flow가 있는 API 프록시로 정의됩니다.

동영상: 짧은 동영상을 시청하여 API 프록시 엔드포인트에 대해 자세히 알아보세요.

대상 엔드포인트의 URL 확인

ProxyEndpoint 정의의 <RouteRule> 태그는 API 프록시 대상을 지정하며 ProxyEndpoint 요청의 PreFlow, Conditional Flows, PostFlow 내 모든 정책이 처리된 후 평가됩니다.

ProxyEndpoint는 대상을 다음과 같이 정의할 수 있습니다.

  • 백엔드 서비스의 직접 URL
  • 단일 TargetEndpoint 정의
  • API 프록시가 조건에 따라 대상 엔드포인트에 요청을 위임하는 여러 TargetEndpoint
  • Null 경로 또는 대상으로, 요청이 대상으로 전달되지 않음을 의미합니다. 대신 모든 요청 처리와 응답 생성이 Edge에서 이루어집니다.

동영상: 짧은 동영상을 시청하여 대상 엔드포인트에 대해 자세히 알아보세요.

직접적인 URL

ProxyEndpoint는 이름이 지정된 TargetEndpoint 구성을 우회하여 백엔드 서비스를 직접 호출할 수 있습니다. 예를 들어 다음 <RouteRule>은 항상 http://api.mycompany.com/myAPI에 대한 HTTP 호출을 수행합니다.

<RouteRule name="default">
  <URL>http://api.mycompany.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 헤더 routeToTargetEndpoint1 값이 있으면 요청이 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"/>

자세히 알아보기