이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
이 섹션에서는 API 프록시 흐름을 정의하는 데 사용하는 XML 요소에 대한 참조 정보를 제공합니다.
계층 구조 및 구문
다음 예시는 흐름 구성 요소의 요소 계층 구조와 구문을 보여줍니다.
요소 계층 구조
다음 예시는 <ProxyEndpoint>
및 <TargetEndpoint>
요소 내 흐름 구성 요소의 계층 구조를 보여줍니다.
<ProxyEndpoint | TargetEndpoint><PreFlow>
<Request>
<Step>
<Condition>
<Name>
<Response>
<Step>
<Condition>
<Name>
<Description>
<Flows>
<Flow>
<Description>
<Condition>
<Request>
<Step>
<Response>
<Step>
<Description>
<PostFlow>
<Request>
<Step>
<Response>
<Step>
<Description>
<PostClientFlow>
(<ProxyEndpoint> only)<Response>
<Description>
// Additional configuration elements </ProxyEndpoint | TargetEndpoint>
구문
다음 예시는 흐름 구성 요소의 구문을 보여줍니다. 이러한 각 요소는 다음 섹션에서 자세히 설명합니다.
<!-- ProxyEndpoint flow configuration file --> <ProxyEndpoint ... > ... <PreFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PreFlow> <Flows name="flow_name"> <Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow> </Flows> <PostFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostFlow> <PostClientFlow name="flow_name"> <Description>flow_description</Description> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostClientFlow> ... </ProxyEndpoint> <!-- TargetEndpoint flow configuration file --> <TargetEndpoint ... > ... <PreFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PreFlow> <Flows name="flow_name"> <Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow> ... </Flows> <PostFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostFlow> ... </TargetEndpoint>
이러한 요소를 사용하여 PreFlow, Conditional Flow, PostFlow, PostClientFlow 실행을 정의합니다.
<Condition>
런타임 시 처리되는 문을 정의합니다. 문이 true로 평가되면 조건과 관련된 단계 또는 흐름이 실행됩니다. 문이 false로 평가되면 단계 또는 흐름이 무시됩니다.
유형 | 문자열 |
상위 요소 |
<Flow> <Step> |
하위 요소 | 없음 |
<Flow>
또는 <Step>
요소에 요소를 배치했는지의 여부에 따라 특정 단계 또는 전체 흐름에 조건을 적용할 수 있습니다.
// Condition can apply to just one step: // Or to the flow:<Flows>
<Flows>
<Flow>
<Flow>
<Step>
<Condition>
<Condition>
<Step>
<Name>
<Name>
... ... ... ... ... ... </Flows> </Flows>
<Step>
내의 조건이 true로 평가되면 Apigee가 해당 단계를 실행합니다. 조건이 false로 평가되면 Apigee가 단계를 건너뜁니다.
<Flow>
내의 조건이 true로 평가되면 Apigee가 흐름의 모든 단계를 처리합니다. 조건이 false로 평가되면 Apigee가 전체 흐름을 건너뜁니다.
구문
<Condition>
요소는 다음 구문을 사용합니다.
<Condition>property operator "value"</Condition>
각 항목의 의미는 다음과 같습니다.
- property
- 조건에서 사용할 흐름 변수 속성입니다. 예를 들어
request
흐름 변수에는path
및content
라는 속성이 있습니다. 조건에서 사용하려면 flow_variable[dot]property_name을 지정합니다.request.path request.content
흐름 변수와 해당 속성의 전체 목록은 흐름 변수 참조를 확인하세요.
- operator
- 조건 평가 방법을 정의하는 구조체입니다. 일반적인 연산자는 다음과 같습니다.
> greater than <= less than or equal to < less than >= greater than or equal to = equals && and != not equals || or ~~ JavaRegex ~ Matches /~ MatchesPath
전체 목록은 조건 참조의 연산자를 참조하세요.
- 'value'
- 흐름 변수 속성이 평가되는 값입니다. 이는 일반적으로 정수 또는 문자열과 같은 기본 유형입니다(예:
200
또는/cat
). 이 값에는 조건을 통한 패턴 일치에 설명된 대로 패턴 일치에 사용되는 별표 및 다른 문자와 같은 와일드 카드가 포함될 수 있습니다.
예시 1
다음 예시에서는 request
흐름 변수의 verb
속성이 GET
인지 확인합니다.
<!-- api-platform/reference/examples/flow-segments/condition-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> </PreFlow> ... </ProxyEndpoint>
요청이 GET
이면 이 예시에서는 Log-Request-OK
정책을 실행합니다.
예시 2
다음 예시에서는 응답 코드를 확인합니다.
<!-- api-platform/reference/examples/flow-segments/condition-2.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Response> <Step> <Condition>response.status.code LesserThanOrEquals 300</Condition> <Name>Log-Response-OK</Name> </Step> <Step> <Condition>response.status.code GreaterThan 300</Condition> <Name>Log-Response-NOT-OK</Name> </Step> </Response> </PreFlow> ... </ProxyEndpoint>
코드의 값에 따라 다른 정책이 실행됩니다.
속성
<Condition>
요소에 속성이 없습니다.
하위 요소
<Condition>
요소에는 하위 요소가 없습니다.
<Description>
사람이 읽을 수 있는 용어로 흐름을 설명합니다. 이 요소를 사용하여 자신 또는 다른 개발자에게 흐름에 대한 정보를 제공합니다. 설명은 외부에 표시되지 않습니다.
유형 | 문자열 |
상위 요소 |
<Flow> <PreFlow> <PostFlow> |
하위 요소 | 없음 |
구문
<Description>
요소는 다음 구문을 사용합니다.
<Description>flow_description</Description>
예
다음 예시에서는 흐름의 목적을 지정하는 <Description>
요소를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/description-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>XML-to-JSON-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
속성
<Description>
요소에 속성이 없습니다.
하위 요소
<Description>
요소에는 하위 요소가 없습니다.
<Flow>
Apigee가 실행하는 커스텀 단계를 정의합니다.
유형 | 복합 객체 |
상위 요소 |
<Flows> |
하위 요소 |
<Condition> <Description> <Request> <Response> |
<Flow>
에 <Condition>
을 선택적으로 지정할 수 있습니다. 이 경우 Apigee는 조건이 true로 평가되는 경우에만 흐름의 단계를 실행합니다. 그렇지 않으면 Apigee는 전체 흐름을 건너뜁니다.
<Flows>
요소에는 각각 고유한 조건 및 단계가 있는 여러 <Flow>
요소가 포함될 수 있습니다. <Flow>
요소가 여러 개인 경우 Apigee는 조건이 없거나 조건이 true로 평가되는 첫 번째 요소만 실행합니다.
항상 실행되는 기본 흐름을 정의할 수 있습니다(다른 조건부 흐름이 실행되지 않는 경우). API 프록시 구성 방법에 따라, 이 흐름은 악의적인 공격에 보호하는 데 유용할 수 있습니다.
구문
<Flow>
요소는 다음 구문을 사용합니다.
<Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow>
<Flow>
의 모든 하위 요소는 선택사항입니다.
예시 1
다음 예시에서는 항상 'Log-Message-OK' 정책을 실행하는 간단한 <Flow>
를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/flow-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-flow"> <Flow> <Request> <Step> <Name>Log-Message-OK</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
예시 2
다음 예시에서는 여러 단계가 포함된 <Flow>
를 보여줍니다. 각 단계에는 고유한 조건이 있습니다.
<!-- api-platform/reference/examples/flow-segments/flow-2.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>Verify-Auth-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
예시 3
다음 예시에서는 Conditional Flow의 여러 흐름을 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/flows-2.xml --> <ProxyEndpoint name="default"> <Flows> <Flow name="my-flow-1"> <Response> <Step> <Condition>response.status.code = 200</Condition> <Name>Assign-Message-1</Name> </Step> </Response> </Flow> <Flow name="my-flow-2"> <Response> <Step> <Condition>response.status.code >= 400</Condition> <Name>Assign-Message-2</Name> </Step> </Response> </Flow> <Flow name="my-flow-3"> <Response> <Step> <Condition>response.status.code >= 300</Condition> <Name>Assign-Message-3</Name> </Step> </Response> </Flow> </Flows> ... </ProxyEndpoint>
Apigee는 세그먼트에서 하나의 흐름만 실행하며, 조건이 없는 경우 또는 조건이 true로 확인되는 첫 번째 흐름을 실행합니다.
속성
다음 표에서는 <Flow>
요소의 속성을 설명합니다.
속성 | 유형 | 설명 |
---|---|---|
name |
문자열 | (필수) 흐름의 고유 ID입니다. 예를 들면 My-Conditional-Flow-1 입니다. 이름에는 공백 또는 특수문자를 포함할 수 없습니다. |
하위 요소
다음 표에서는 <Flow>
의 하위 요소를 설명합니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Condition> |
문자열 | 런타임 시 처리되는 조건문을 정의합니다. 조건문이 true로 평가되면 흐름 및 모든 단계가 실행됩니다. 조건문이 false로 평가되면 흐름 및 모든 단계가 무시됩니다. |
<Description> |
문자열 | 흐름에 대한 간략한 설명을 제공합니다. 이 설명은 외부에 공개되지 않습니다. |
<Request> |
복합 객체 | 요청 세그먼트의 단계와 조건을 지정합니다. |
<Response> |
복합 객체 | 응답 세그먼트의 단계와 조건을 지정합니다. |
<Flows>
0개 이상의 <Flow>
요소를 포함합니다.
유형 | 복합 객체 |
상위 요소 |
<ProxyEndpoint> <TargetEndpoint> |
하위 요소 |
<Flow> |
<Flows>
내에 여러 <Flow>
요소가 있으면 하나의 <Flow>
만 실행됩니다. 이는 <Condition>
가 없거나 조건이 true로 확인되는 첫 번째 흐름입니다.
항상 실행되는 기본 흐름을 정의할 수 있습니다(다른 흐름이 실행되지 않는 경우). API 프록시 구성 방법에 따라, 이 흐름은 악의적인 공격에 보호하는 데 유용할 수 있습니다.
구문
<Flows>
요소는 다음 구문을 사용합니다.
<Flows name="flow_name"> <Flow name="conditional_flow_name"> <Description>flow_description</Description> <Condition>property operator "value"</Condition> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </Flow> </Flows>
<Flows>
의 모든 하위 요소는 선택사항입니다.
예시 1
다음 예시에서는 단일 <Flow>
가 있는 간단한 <Flows>
요소를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/flows-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>Verify-Auth-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
Apigee는 proxy
흐름 변수에서 수집한 경로 서픽스를 기반으로 이러한 정책 중 하나를 실행합니다. 경로 서픽스와 조건이 하나도 일치하지 않는 경우 Apigee는 이 흐름을 실행하지 않습니다.
예시 2
다음 예시에서는 <Flows>
내에 각각 고유한 <Condition>
이 포함된 여러 <Flow>
요소를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/flows-2.xml --> <ProxyEndpoint name="default"> <Flows> <Flow name="my-flow-1"> <Response> <Step> <Condition>response.status.code = 200</Condition> <Name>Assign-Message-1</Name> </Step> </Response> </Flow> <Flow name="my-flow-2"> <Response> <Step> <Condition>response.status.code >= 400</Condition> <Name>Assign-Message-2</Name> </Step> </Response> </Flow> <Flow name="my-flow-3"> <Response> <Step> <Condition>response.status.code >= 300</Condition> <Name>Assign-Message-3</Name> </Step> </Response> </Flow> </Flows> ... </ProxyEndpoint>
Apigee는 조건이 true로 평가되는 세그먼트의 첫 번째 흐름만 실행합니다. 그런 다음 Apigee는 세그먼트의 나머지 흐름을 건너뜁니다.
예시 3
다음 예시에서는 '기본' <Flow>
를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/flows-3.xml --> <ProxyEndpoint name="default"> <Flows> <Flow name="my-conditional-flow-1"> <Response> <Step> <Condition>response.status.code = 200</Condition> <Name>Assign-Message-1</Name> </Step> </Response> </Flow> <Flow name="my-conditional-flow-2"> <Response> <Step> <Condition>response.header.someheader = "42"</Condition> <Name>Assign-Message-2</Name> </Step> </Response> </Flow> <Flow name="my-default-flow"> <Response> <Step> <Name>Assign-Message-3</Name> </Step> </Response> </Flow> </Flows> ... </ProxyEndpoint>
Apigee는 조건이 true로 평가되는 세그먼트의 첫 번째 흐름만 실행합니다. 조건부 흐름이 실행되지 않으면 이 예시의 세 번째 흐름(조건 없음)이 실행됩니다.
기본 흐름은 악의적인 공격으로부터 보호하는 데 유용한 도구가 될 수 있습니다.
속성
<Flows>
요소에 속성이 없습니다.
하위 요소
<Flows>
요소에는 다음과 같은 하위 요소가 있습니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Flow> |
복합 객체 | Conditional Flow 내에서 하나의 가능한 단계를 정의하는 흐름입니다. |
<Name>
<Flow>
내에서 실행할 정책의 ID를 지정합니다.
유형 | 문자열 |
상위 요소 |
<Step> |
하위 요소 | 없음 |
구문
<Name>
요소는 다음 구문을 사용합니다.
<Name>policy_name</Name>
예
다음 예시에서는 이름에 따라 흐름에 추가된 두 정책을 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/name-1.xml --> <ProxyEndpoint name="default"> <Flows name="my-conditional-flows"> <Flow name="reports"> <Request> <Description>Based on the path suffix, determine which flow to use</Description> <Step> <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition> <Name>XML-to-JSON-1</Name> </Step> <Step> <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition> <Name>Verify-Auth-1</Name> </Step> </Request> </Flow> </Flows> ... </ProxyEndpoint>
속성
<Name>
요소에 속성이 없습니다.
하위 요소
<Name>
요소에는 하위 요소가 없습니다.
<PostFlow>
요청 및 응답의 PostFlow에서 수행할 단계를 정의합니다.
유형 | 복합 객체 |
상위 요소 |
<ProxyEndpoint> <TargetEndpoint> |
하위 요소 |
<Description> <Request> <Response> |
<PostFlow>
요소는 다음 구문을 사용합니다.
구문
<PostFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostFlow>
예
다음 예시에서는 요청 및 응답이 정의된 단계가 모두 포함된 PostFlow를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/postflow-1.xml --> <ProxyEndpoint name="default"> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> <Response> <Step> <Name>Set-Response-Headers</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
속성
다음 표에서는 <PostFlow>
요소의 속성을 설명합니다.
속성 | 유형 | 설명 |
---|---|---|
name |
문자열 | 엔드포인트 내에서 고유한 흐름의 고유 ID입니다. 예를 들면 My-PostFlow-1 입니다. 값은 공백 또는 기타 특수문자를 포함할 수 없습니다. |
하위 요소
다음 표에서는 <PostFlow>
의 하위 요소를 설명합니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Description> |
문자열 | 흐름에 대한 간략한 설명을 제공합니다. |
<Request> |
복합 객체 | 요청의 PostFlow 중에 실행할 정책을 정의합니다. |
<Response> |
복합 객체 | 응답의 PostFlow 중에 실행할 정책을 정의합니다. |
<PostClientFlow>
응답이 클라이언트에 반환된 후에만 실행되는 ProxyEndpoint의 정책을 정의합니다. 이러한 정책은 일반적으로 응답과 관련된 메시지를 로깅합니다.
유형 | 복합 객체 |
상위 요소 |
<ProxyEndpoint> |
하위 요소 |
<Description> <Response> |
구문
<PostClientFlow>
요소는 다음 구문을 사용합니다.
<PostClientFlow name="flow_name"> <Description>flow_description</Description> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PostClientFlow>
<PostClientFlow>
의 모든 하위 요소는 선택사항입니다.
예
다음 예시에서는 단일 정책을 실행하는 간단한 PostClientFlow를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/postclientflow-1.xml --> <ProxyEndpoint name="default"> <PostClientFlow name="my-postclientflows"> <Description>My first PostClientFlow. Processed after the response is sent back to the client.</Description> <Response> <Step> <Name>Message-Logging-OK</Name> </Step> </Response> </PostClientFlow> ... </ProxyEndpoint>
속성
다음 표에서는 <PostClientFlow>
요소의 속성을 설명합니다.
속성 | 유형 | 설명 |
---|---|---|
name |
문자열 | 흐름의 고유 ID입니다. 이름에는 공백 또는 특수문자를 포함할 수 없습니다(예: 예를 들면 My-PostClientFlow-1 입니다. |
하위 요소
다음 표에서는 <PostClientFlow>
의 하위 요소를 설명합니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Description> |
문자열 | 흐름에 대한 간략한 설명을 제공합니다. |
<Response> |
복합 객체 | 응답의 PostFlow 중에 실행할 정책을 정의합니다. |
<PreFlow>
요청 및 응답의 PreFlow에서 실행할 정책을 정의합니다.
유형 | 복합 객체 |
상위 요소 |
<ProxyEndpoint> <TargetEndpoint> |
하위 요소 |
<Description> <Request> <Response> |
구문
<PreFlow>
요소는 다음 구문을 사용합니다.
<PreFlow name="flow_name"> <Description>flow_description</Description> <Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request> <Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response> </PreFlow>
<PreFlow>
의 모든 하위 요소는 선택사항입니다.
예
다음 예시에서는 요청 및 응답 흐름이 정의된 PreFlow를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/preflow-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> <Response> <Step> <Condition>response.status.code LesserThanOrEquals 300</Condition> <Name>Log-Response-OK</Name> </Step> <Step> <Condition>response.status.code GreaterThan 300</Condition> <Name>Log-Response-NOT-OK</Name> </Step> </Response> </PreFlow> ... </ProxyEndpoint>
속성
다음 표에서는 <PreFlow>
요소의 속성을 설명합니다.
속성 | 유형 | 설명 |
---|---|---|
name |
문자열 | 흐름의 고유 ID입니다. 이름에는 공백 또는 특수문자를 포함할 수 없습니다(예: 예를 들면 My-PreFlow-1 입니다. |
하위 요소
다음 표에서는 <PreFlow>
의 하위 요소를 설명합니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Description> |
문자열 | 흐름에 대한 간략한 설명을 제공합니다. |
<Request> |
복합 객체 | 요청의 PreFlow 중에 실행할 정책을 정의합니다. |
<Response> |
복합 객체 | 응답의 PreFlow 중에 실행할 정책을 정의합니다. |
<Request>
흐름의 요청 세그먼트 중에 실행할 정책을 정의합니다.
유형 | 복합 객체 |
상위 요소 |
<Flow> <PreFlow> <PostFlow> |
하위 요소 |
<Condition> <Step> |
구문
<Request>
요소는 다음 구문을 사용합니다.
<Request> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Request>
<Request>
의 모든 하위 요소는 선택사항입니다.
예
다음 예시에서는 PreFlow와 PostFlow 모두에서 요청에 정의된 흐름을 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/request-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> </PreFlow> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> </PostFlow> ... </ProxyEndpoint>
속성
<Request>
요소에 속성이 없습니다.
하위 요소
다음 표에서는 <Request>
의 하위 요소를 설명합니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Condition> |
복합 객체 | 요청 세그먼트 내의 단계를 실행할지 여부를 결정합니다. |
<Step> |
문자열 | 요청 세그먼트 내에서 실행할 정책을 지정합니다. |
<Response>
흐름의 응답 세그먼트 중에 실행할 정책을 정의합니다.
유형 | 복합 객체 |
상위 요소 |
<Flow> <PreFlow> <PostClientFlow> <PostFlow> |
하위 요소 |
<Condition> <Step> |
구문
<Response>
요소는 다음 구문을 사용합니다.
<Response> <Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step> ... </Response>
<Response>
의 모든 하위 요소는 선택사항입니다.
예
다음 예시에서는 PreFlow와 PostFlow 모두에서 응답에 정의된 흐름을 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/response-1.xml --> <ProxyEndpoint name="default"> <PreFlow name="my-preFlows"> <Description>My first PreFlow</Description> <Response> <Step> <Condition>response.status.code LesserThanOrEquals 300</Condition> <Name>Log-Response-OK</Name> </Step> <Step> <Condition>response.status.code GreaterThan 300</Condition> <Name>Log-Response-NOT-OK</Name> </Step> </Response> </PreFlow> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Response> <Step> <Name>Set-Response-Headers</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
속성
<Response>
요소에 속성이 없습니다.
하위 요소
다음 표에서는 <Response>
의 하위 요소를 설명합니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Condition> |
문자열 | 응답 세그먼트 내의 단계를 실행할지 여부를 결정합니다. |
<Step> |
문자열 | 응답 세그먼트 내에서 실행할 정책을 지정합니다. |
<Step>
실행할 정책과 해당 정책의 실행 여부를 결정하는 조건(선택사항)을 지정합니다.
유형 | 복합 객체 |
상위 요소 |
<Request> <Response> |
하위 요소 |
<Condition> <Name> |
<Flow>
에 정의된 단계가 한 개 이상일 수 있으며, 이 단계는 흐름의 XML에 정의된 순서대로 실행됩니다.
조건이 없는 단계는 항상 실행됩니다. 조건이 있는 단계는 조건이 true로 평가될 때만 실행됩니다. 조건이 false로 평가되면 Apigee가 단계를 건너뜁니다.
구문
<Step>
요소는 다음 구문을 사용합니다.
<Step> <Condition>property operator "value"</Condition> <Name>policy_name</Name> </Step>
<Step>
당 하나의 <Condition>
및 하나의 <Name>
만 있을 수 있지만 <Flow>
에는 여러 단계가 있을 수 있습니다.
<Step>
의 모든 하위 요소는 선택사항입니다.
예시 1
다음 예시에서는 조건이 포함된 단계 하나와 조건이 없는 단계 하나를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/step-1.xml --> <ProxyEndpoint name="default"> <PostFlow name="my-postflows"> <Description>My first PostFlow</Description> <Request> <Step> <Condition>request.verb = "GET"</Condition> <Name>Log-Request-OK</Name> </Step> </Request> <Response> <Step> <Name>Set-Response-Headers</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
조건이 없는 단계는 요청 세그먼트 중에 매번 실행됩니다. 조건이 있는 단계는 응답 세그먼트 중에 요청이 'GET'인 경우에만 실행됩니다.
예시 2
다음 예시에서는 단일 세그먼트의 여러 단계를 보여줍니다.
<!-- api-platform/reference/examples/flow-segments/step-2.xml --> <ProxyEndpoint name="default"> <PostFlow name="PostFlow"> <Response> <Step> <Name>Assign-Message-1</Name> </Step> <Step> <Name>Assign-Message-2</Name> </Step> </Response> </PostFlow> ... </ProxyEndpoint>
조건이 없는 단계는 항상 실행됩니다.
속성
<Step>
요소에 속성이 없습니다.
하위 요소
다음 표에서는 <Step>
의 하위 요소를 설명합니다.
하위 요소 | 유형 | 설명 |
---|---|---|
<Condition> |
문자열 | 런타임 시 처리되는 단계의 조건문을 정의합니다. 문이 true로 평가되면 Apigee가 단계를 실행합니다. 문이 false로 평가되면 Apigee는 단계를 건너뜁니다. |
<Name> |
문자열 | 현재 흐름에서 실행할 정책의 ID를 지정합니다. |