<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
흐름은 API 프록시의 기본 구성요소입니다. 흐름을 사용 설정하면 API 프록시에서 정책 및 코드가 실행되는 순서를 구성하여 API 동작을 프로그래밍할 수 있습니다.
흐름의 개념 개요는 다음을 사용하여 프록시 실행 방법 제어 흐름에 대해 자세히 알아보세요.
이 주제에서는 조건부 흐름을 만들고 높은 수준의 흐름에 로직(정책)을 추가하는 방법을 설명합니다. 조건 생성 방법에는 이 주제에서 다루는 것보다 더 자세한 내용이 포함됩니다. 자세한 내용은 흐름 개요 변수 및 조건 사용할 수 있습니다.
흐름에 정책 연결
Edge에는 보안 구현, 관리 기능 구현, 관리, 확장 처리와 관련해 메시지를 조작할 수 있습니다 또한 정책을 사용하면 커스텀 코드를 추가하여 메시지 처리를 완전히 맞춤설정할 수 있습니다.
예를 들면 다음과 같습니다.
- OAuth 보안 정책을 ProxyEndpoint의 PreFlow 요청에 연결합니다. ProxyEndpoint의 요청 PreFlow가 파이프라인의 첫 번째 흐름이므로 보안 정책에 위반되는 경우 즉시 요청을 거부할 수 있습니다.
- 응답을 JSON에서 XML로 변환하려면 TargetEndpoint의 PostFlow 응답에 JSON-XML 변환 정책을 연결합니다.
- 요청을 처리하는 자바스크립트 코드를 실행하려면 ProxyEndpoint의 조건부 흐름에 자바스크립트 정책을 연결합니다.
조건부 흐름을 만들면 정책 연결에 사용할 수 있습니다. 흐름을 선택한 후 요청 또는 응답 다이어그램의 + 단계 아이콘을 클릭하여 흐름에 새 정책 또는 기존 정책을 추가합니다.
선택한 흐름에 정책을 연결하면 해당 흐름 URI 및 동사의 조합으로 전송되는 요청에만 할당량 정책이 적용되도록 API 프록시를 구성할 수 있습니다. 예를 들어 요청의 learn 흐름에 정책을 연결하면 프록시 편집기의 코드 보기에 다음 XML이 생성됩니다.
<ProxyEndpoint name="default"> ... <Flow name="issue"> <Description/> <Request> <Step> <Name>Quota-2</Name> </Step> </Request> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition> </Flow> ... </ProxyEndpoint>
이 구성에서 GET 요청이 URI와 함께 API 프록시로 수신되면 패턴의 .../issue/** (/issue/ 마지막 전달 이후의 URI에 있음) 슬래시), 해당 API 호출에 할당량이 적용됩니다.
조건부 흐름 정보
PreFlow 또는 PostFlow에 연결된 모든 정책은 항상 실행됩니다. 그러나 조건부 흐름의 정책은 흐름의 조건이 true로 평가되는 경우에만 실행됩니다.
요청과 응답을 처리하는 동안 세그먼트별로 하나의 조건부 흐름(조건이 true로 평가된 첫 번째 흐름)만 실행됩니다. 즉, 다음의 일부로 하나의 조건부 흐름이 실행될 수 있습니다.
- ProxyEndpoint의 요청 파이프라인
- TargetEndpoint의 요청 파이프라인
- ProxyEndpoint의 응답 파이프라인
- TargetEndpoint의 응답 파이프라인
동영상: 다음의 짧은 동영상에서 조건부 흐름에 대한 내용을 조금 더 자세히 알아보세요.
예를 들어 다음 ProxyEndpoint 정의는 API 프록시에 대한 모든 HTTP GET
요청에서 ProxyEndpoint가 실행하는 조건부 흐름을 보여줍니다.
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>request.verb="GET"</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
조건에서는 request.verb 흐름을 참조합니다. 변수를 사용합니다. 흐름 변수는 연결된 상태 정보를 보유하는 이름이 지정된 참조입니다. 에지에서 처리한 API 트랜잭션으로 구성할 수 있습니다 Edge는 사용자가 지정할 수 있는 참조
RESTful 서비스는 API 리소스 모음입니다. API 리소스는 개발자가 API를 호출하여 액세스할 수 있는 일부 항목을 식별하는 URI 경로 프래그먼트입니다. 예를 들어 서비스 백엔드가 날씨 보고서와 날씨 예측을 제공하는 경우 API가 이러한 API 리소스에 매핑되는 두 개의 조건부 흐름(/reports
및 /forecasts
)을 정의할 수 있습니다. API 호출의 URL에 이러한 리소스 중 하나가 포함되면 조건이 true로 평가되고 조건부 흐름에 연결된 로직이 실행됩니다.
그러면 앱 개발자가 다음 형식의 URL에 요청을 보내 리소스에 액세스합니다.
http://myAPIs.myCo.com/weather/reports
또는
http://myAPIs.myCo.com/weather/forecasts
API 프록시에서 특정 리소스에 해당하는 조건부 흐름을 정의할 수 있습니다.
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition> <Request/> <Response/> </Flow> <Flow name="Flow-2"> <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
이 예시에서는 API 프록시에 액세스하는 데 사용되는 URL의 서픽스 부분이 포함된 proxy.pathsuffix
흐름 변수를 참조합니다. 그런 다음 각 리소스의 조건부 흐름에 서로 다른 정책을 연결할 수 있습니다.
조건부 흐름 추가
이 간단한 예시에서는 요청 메시지가 HTTP GET입니다.
조건부 흐름을 추가하려면 API 프록시 빌더에서 개발 탭을 선택합니다.
원하는 엔드포인트에서 + 아이콘을 클릭합니다.
새 조건부 흐름 양식을 사용하면 흐름의 이름을 지정하고 조건을 구성할 수 있습니다. 다음 예시에서는 기본 경로 후의 아무 URI에서 GET
동사(PUT
, POST
등과 대비하여)에 대한 요청 메시지의 HTTP를 평가하는 간단한 조건을 추가합니다.
(Flow 변수 및 조건 참조)
이제 Flow-1이라는 새 흐름이 탐색기 메뉴에 표시됩니다.
이제 ProxyEndpoint의 XML 구성을 살펴봅시다. 탐색기 메뉴에서 Flow-1을 선택하세요.
다음 구성이 표시됩니다.
<PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Request/> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition> </Flow> </Flows> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow>
다음 단계
다음 주제에서는 조건 구성 및 변수 사용에 대해 자세히 설명합니다.