경로 이해

<ph type="x-smartling-placeholder"></ph> 현재 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은 여기에 해당합니다. 가상 호스트로 라우팅할 수 있습니다 위의 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"/>

자세히 알아보기