이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
소개
ExtractVariables 정책은 요청 또는 응답에서 콘텐츠를 추출하고 변수 값을 해당 콘텐츠로 설정합니다. 헤더, URI 경로, JSON/XML 페이로드, 양식 매개변수, 쿼리 매개변수를 포함하여 메시지의 모든 부분을 추출할 수 있습니다. 이 정책은 메시지 콘텐츠에 텍스트 패턴을 적용하고 일치하는 항목을 찾으면 지정된 메시지 콘텐츠로 변수를 설정합니다.
ExtractVariables는 요청 또는 응답 메시지에서 정보를 추출하기 위해 자주 사용하지만 AccessEntity 정책, XML 객체 또는 JSON 객체에 의해 생성된 항목을 포함한 다른 소스의 정보를 추출할 때도 사용할 수 있습니다.
지정된 메시지 콘텐츠를 추출한 후 요청 및 응답을 처리하는 과정에서 다른 정책의 변수를 참조할 수 있습니다.
이 정책은 확장 가능한 정책이며, 이 정책을 사용하면 Apigee 라이선스에 따라 비용 또는 사용률이 영향을 받을 수 있습니다. 정책 유형 및 사용 영향에 대한 자세한 내용은 정책 유형을 참조하세요.
동영상
ExtractVariables 정책에 대한 자세한 내용은 다음 동영상을 참조하세요.
동영상 | 설명 |
---|---|
XML 페이로드에서 변수 추출 | Extract Variable 정책을 사용하여 XML 페이로드에서 변수를 추출합니다. |
JSON 페이로드에서 변수 추출 | Extract Variable 정책을 사용하여 JSON 페이로드에서 변수를 추출합니다. |
매개변수에서 변수 추출 | 쿼리, 헤더, 양식, URI 매개변수 등 매개변수에서 변수를 추출합니다. |
다중 값 매개변수에서 변수 추출 | 다중 값 매개변수에서 변수를 추출합니다. |
샘플
이러한 정책 코드 샘플은 다음 유형의 아티팩트에서 변수를 추출하는 방법을 보여줍니다.
URI
<ExtractVariables name="ExtractVariables-1"> <DisplayName>Extract a portion of the url path</DisplayName> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/accounts/{id}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
위의 샘플 정책 코드를 살펴보세요. <URIPath>
요소는 URI 경로에서 정보를 추출하도록 ExtractVariables 정책에 알려줍니다. <Pattern>
요소는 URI 경로에 적용할 패턴을 지정합니다. 패턴은 간단한 템플릿으로 처리되며 중괄호는 URI 경로의 여러 부분을 나타냅니다.
설정할 변수의 이름은 <VariablePrefix>
요소에 지정된 값과 <Pattern>
요소의 중괄호 {}로 묶인 값에 따라 결정됩니다. 두 값은 중간 점으로 결합되어 변수 이름은 예를 들어 urirequest.id
가 됩니다. <VariablePrefix>
요소가 없으면 변수 이름은 중괄호로 묶인 값입니다.
다음과 같은 수신 요청을 처리할 때 위의 샘플 정책 코드를 고려해 보세요.
GET http://example.com/svc1/accounts/12797282
API 프록시의 기본 경로가 /svc1
이라고 가정합니다. Apigee가 이 수신 요청에 위의 ExtractVariables 정책 코드를 적용할 때 urirequest.id
변수를 12797282
로 설정합니다. Apigee가 정책을 실행하면 처리 흐름의 후속 정책 또는 코드가 urirequest.id
라는 변수를 참조하여 문자열 값 12797282
를 가져올 수 있습니다.
예를 들어 다음 AssignMessage 정책은 해당 변수의 값을 새 요청 메시지의 페이로드에 삽입합니다.
<AssignMessage async="false" continueOnError="false" enabled="true" name="AssignPayload"> <DisplayName>AssignPayload</DisplayName> <Set> <Payload contentType="text/xml"> <IdExtractedFromURI>{urirequest.id}</IdExtractedFromURI> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="true" transport="http" type="request">newRequest</AssignTo> </AssignMessage>
쿼리 매개변수
<ExtractVariables name="ExtractVariables-2"> <DisplayName>Extract a value from a query parameter</DisplayName> <Source>request</Source> <QueryParam name="code"> <Pattern ignoreCase="true">DBN{dbncode}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
다음과 같은 수신 요청을 처리할 때 위의 샘플 정책 코드를 고려해 보세요.
GET http://example.com/accounts/12797282?code=DBN88271
Apigee가 이 수신 요청에 위의 ExtractVariables 정책 코드를 적용할 때 queryinfo.dbncode
변수를 88271
으로 설정합니다. Apigee가 정책을 실행하면 처리 흐름의 후속 정책 또는 코드가 queryinfo.dbncode
라는 변수를 참조하여 문자열 값 88271
을 가져올 수 있습니다.
이제 프록시에서 queryinfo.dbncode
변수에 액세스할 수 있습니다.
예를 들어 다음 AssignMessage 정책은 이를 요청의 페이로드에 복사합니다.
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetQP</DisplayName> <Set> <Payload contentType="text/xml"> <ExtractQP>{queryinfo.dbncode}</ExtractQP> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
여러 매개변수
<ExtractVariables name="ExtractVariables-2"> <DisplayName>Extract a value from a query parameter</DisplayName> <Source>request</Source> <QueryParam name="w"> <Pattern ignoreCase="true">{firstWeather}</Pattern> </QueryParam> <QueryParam name="w.2"> <Pattern ignoreCase="true">{secondWeather}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
API 설계를 통해 동일한 이름의 여러 쿼리 매개변수를 지정할 수 있다고 가정합니다. ExtractVariables 정책을 사용하여 쿼리 매개변수의 여러 인스턴스 값을 추출할 수 있습니다. 이 정책에서 같은 이름의 쿼리 매개변수를 참조하려면 색인을 사용합니다. 쿼리 매개변수의 첫 번째 인스턴스에는 색인이 없고, 두 번째 인스턴스는 색인 2, 세 번째 인스턴스는 색인 3 등으로 진행됩니다.
다음과 같은 수신 요청을 처리할 때 위의 샘플 정책 코드를 고려해 보세요.
GET http://example.com/weather?w=Boston&w=Chicago
Apigee가 이러한 수신 요청에 위의 ExtractVariables 정책 코드를 적용할 때 queryinfo.firstWeather
변수를 Boston
로, queryInfo.secondWeather
변수를 Chicago
로 설정합니다.
이제 프록시에서 변수 queryinfo.firstWeather
및 queryinfo.secondWeather
에 액세스할 수 있습니다. 예를 들어 다음 AssignMessage 정책은 이를 요청의 페이로드에 복사합니다.
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetQP</DisplayName> <Set> <Payload contentType="text/xml"> <ExtractQP1>{queryinfo.firstWeather}</ExtractQP1> <ExtractQP2>{queryinfo.secondWeather}</ExtractQP2> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
헤더
<ExtractVariables name='ExtractVariable-OauthToken'> <Source>request</Source> <Header name="Authorization"> <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern> </Header> <VariablePrefix>clientrequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
API가 OAuth v2.0 Bearer 토큰을 사용한다고 가정해 보겠습니다. Authorization: Bearer TU08xptfFfeM7aS0xHqlxTgEAdAM.
과 같은 헤더를 포함하는 OAuth v2.0 토큰을 전달하는 요청을 처리할 때 위의 샘플 정책 코드를 고려해 보세요.
API 디자이너로서 캐시 조회에서 토큰 값(전체 헤더 아님)을 키로 사용한다고 가정해 보겠습니다. 위의 ExtractVariables 정책 코드를 사용하여 토큰을 추출할 수 있습니다.
Apigee는 이 헤더에 위의 ExtractVariables 정책 코드를 적용할 때 clientrequest.oauthtoken
변수를 TU08xptfFfeM7aS0xHqlxTgEAdAM
로 설정합니다.
이제 프록시에서 clientrequest.oauthtoken
변수에 액세스할 수 있습니다. 예를 들어 다음 AssignMessage 정책은 이를 요청의 페이로드에 복사합니다.
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetHeader</DisplayName> <Set> <Payload contentType="text/xml"> <ExtractHeader>{clientrequest.oauthtoken}</ExtractHeader> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
JSON
<ExtractVariables name="ExtractVariables-3"> <Source>response</Source> <JSONPayload> <Variable name="latitude" type="float"> <JSONPath>$.results[0].geometry.location.lat</JSONPath> </Variable> <Variable name="longitude" type="float"> <JSONPath>$.results[0].geometry.location.lng</JSONPath> </Variable> </JSONPayload> <VariablePrefix>geocoderesponse</VariablePrefix> </ExtractVariables>
다음 JSON 응답 페이로드를 고려해 보세요.
{ "results": [{ "geometry": { "location": { "lat": 37.42291810, "lng": -122.08542120 }, "location_type": "ROOFTOP", "viewport": { "northeast": { "lat": 37.42426708029149, "lng": -122.0840722197085 }, "southwest": { "lat": 37.42156911970850, "lng": -122.0867701802915 } } } }] }
Apigee가 이 JSON 메시지에 위의 ExtractVariables 정책 코드를 적용할 때 두 가지 변수(geocoderesponse.latitude
, geocoderesponse.longitude
)를 설정합니다. 두 변수 모두 geocoderesponse
과 동일한 변수 프리픽스를 사용합니다. 이러한 변수의 프리픽스는 <Variable>
요소의 name
속성에서 명시적으로 지정됩니다.
geocoderesponse.latitude
변수는 37.42291810
값을 가져옵니다. geocoderesponse.longitude
변수는 -122.08542120
값을 가져옵니다.
이제 프록시에서 geocoderesponse.latitude
변수에 액세스할 수 있습니다. 예를 들어 다음 AssignMessage 정책에서는 이를 응답의 latitude
라는 헤더에 복사합니다.
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetJSONVar</DisplayName> <Add> <Headers> <Header name="latitude">{geocoderesponse.latitude}</Header> </Headers> </Add> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
XML
<ExtractVariables name="ExtractVariables-4"> <Source>response</Source> <XMLPayload> <Namespaces> <Namespace prefix="dir">urn:43BFF88D-D204-4427-B6BA-140AF393142F</Namespace> </Namespaces> <Variable name="travelmode" type="string"> <XPath>/dir:Directions/dir:route/dir:leg/dir:step/@mode</XPath> </Variable> <Variable name="duration" type="string"> <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:value</XPath> </Variable> <Variable name="timeunit" type="string"> <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:text</XPath> </Variable> </XMLPayload> <VariablePrefix>directionsresponse</VariablePrefix> </ExtractVariables>
다음 XML 응답 페이로드를 고려해 보세요.
<Directions xmlns="urn:43BFF88D-D204-4427-B6BA-140AF393142F"> <status>OK</status> <route> <summary>I-40 W</summary> <leg> <step mode="DRIVING"> <start_location> <lat>41.8507300</lat> <lng>-87.6512600</lng> </start_location> <end_location> <lat>41.8525800</lat> <lng>-87.6514100</lng> </end_location> <duration> <value>19</value> <text>minutes</text> </duration> </step> </leg> </route> </Directions>
Apigee에서 위의 ExtractVariables 정책 코드를 이 XML 메시지에 적용할 때 다음과 같은 3가지 변수를 설정합니다.
directionsresponse.travelmode
:DRIVING
값을 가져옵니다.directionsresponse.duration
:19
값을 가져옵니다.directionsresponse.timeunit
:minutes
값을 가져옵니다.
모든 변수는 directionsresponse
와 동일한 변수 프리픽스를 사용합니다. 이 변수의 서픽스는 <Variable>
요소의 name
속성에서 명시적으로 지정됩니다.
이제 프록시에서 directionresponse.travelmode
변수에 액세스할 수 있습니다. 예를 들어 다음 AssignMessage 정책에서는 이를 응답의 tmode
라는 헤더에 복사합니다.
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetXMLVar</DisplayName> <Add> <Headers> <Header name="tmode">{directionsresponse.travelmode}</Header> </Headers> </Add> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
ExtractVariables 정책 정보
API 개발자는 헤더, URI 경로, 페이로드, 쿼리 매개변수 등 메시지 콘텐츠에 따라 다르게 작동하는 API 프록시를 빌드합니다. 종종 프록시는 조건문에 사용하기 위해 이 콘텐츠의 일부를 추출합니다. 이렇게 하려면 ExtractVariables 정책을 사용하세요.
ExtractVariables 정책을 정의할 때 다음을 선택할 수 있습니다.
- 설정할 변수의 이름
- 변수 소스
- 추출 및 설정할 변수의 수
이 정책을 실행하면 정책이 콘텐츠에 텍스트 패턴을 적용하고 일치하는 항목을 찾으면 지정된 변수의 값이 콘텐츠와 함께 설정됩니다. 그런 다음 다른 정책 및 코드는 이러한 변수를 사용하여 동적 동작을 사용 설정하거나 비즈니스 데이터를 Apigee API 애널리틱스로 보낼 수 있습니다.
범위
ExtractVariables 정책으로 설정된 변수에는 전역 범위가 있습니다. 즉, ExtractVariables 정책이 새 변수를 정의한 후에는 흐름의 모든 단계(ExtractVariables 정책 후에 실행되는 모든 단계)의 모든 정책 또는 코드에서 해당 변수에 액세스할 수 있습니다. 여기에는 다음이 포함됩니다.
- PreFlow: ProxyEndpoint 및 TargetEndpoint(요청 및 응답)
- PostFlow: ProxyEndpoint 및 TargetEndpoint(요청 및 응답)
- PostClientFlow: ProxyEndpoint (MessageLogging policy을 사용하는 응답만>)
- 오류 흐름
일치 및 변수 생성 정보
ExtractVariables 정책은 요청이나 응답에서 정보를 추출하고 이 정보를 변수에 씁니다. URI 경로 또는 XML 데이터와 같이 추출할 수 있는 각 정보 유형에 대해 일치하는 패턴과 추출된 정보를 보유하는 데 사용되는 변수의 이름을 지정합니다.
그러나 패턴 일치의 작동 방법은 추출 소스에 따라 다릅니다. 다음 섹션에서는 추출할 수 있는 정보의 두 가지 기본 카테고리에 대해 설명합니다.
URI 경로, 쿼리 매개변수, 헤더, 양식 매개변수, 변수 일치
URI 경로, 쿼리 매개변수, 헤더, 양식 매개변수, 변수에서 정보를 추출할 때 <Pattern>
태그를 사용하여 일치시킬 패턴을 하나 이상 지정합니다. 예를 들어 다음 정책 예시에서는 URI 경로에 대한 단일 일치 패턴을 보여줍니다.
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
이 예시에서 urirequest.pathSeg
변수는 proxy.pathsuffix에서 /a/
다음에 나타나는 것으로 설정됩니다. 예를 들어 API 프록시의 기본 경로가 /basepath/v1
이라고 가정합시다. http://myCo.com/basepath/v1/a/b
에 대한 인바운드 요청이 있으면 변수는 b
로 설정됩니다.
여러 패턴 지정
<Pattern>
태그에 상응하여 여러 패턴이 일치하도록 지정할 수 있으며, 여기서
- 모든 패턴은 일치에 대한 테스트를 거쳤습니다.
- 일치하는 패턴이 없으면 정책은 아무것도 수행하지 않고 변수가 작성되지 않습니다.
- 둘 이상의 패턴이 일치하면 가장 긴 경로 세그먼트가 추출에 사용됩니다.
- 일치하는 두 패턴의 가장 긴 경로 세그먼트 길이가 동일한 경우 정책에서 먼저 지정된 패턴이 추출에 사용됩니다.
다음 예시에서는 URI 경로에 대해 세 가지 일치 패턴이 포함된 정책을 만듭니다.
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
기본 경로가 /basepath/v1
인 API 프록시의 경우 API 프록시에 대한 인바운드 요청 URL은 다음과 같은 형식이라고 해봅시다.
http://myCo.com/basepath/v1/a/b
이 예시에서 첫 번째 패턴은 URI와 일치하며 urirequest.pathSeg
변수는 b
로 설정됩니다.
요청 URL이 다음과 같은 경우:
http://myCo.com/basepath/v1/a/b/c/d
...그런 다음 세 번째 패턴이 일치하면 urirequest.pathSeg
변수가 d
로 설정됩니다.
여러 변수가 있는 패턴 지정
일치 패턴에서 여러 변수를 지정할 수 있습니다. 예를 들어 다음 두 변수를 사용하여 일치하는 패턴을 지정합니다.
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/{pathSeg1}/c/{pathSeg2}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
다시 인바운드 요청 URL에 대해 기본 경로가 /basepath/v1
인 API 프록시를 가정해 봅시다.
http://myCo.com/basepath/v1/a/b/c/d
...urirequest.pathSeg1
변수가 b
로 설정되고 urirequest.pathSeg2
변수가 d
로 설정됩니다.
패턴의 여러 인스턴스 일치
또한 동일한 이름을 가진 항목의 인스턴스가 여러 개 있는 경우에도 패턴을 일치시킬 수 있습니다. 예를 들어 여러 쿼리 매개변수 또는 이름이 같은 여러 헤더를 포함하는 요청을 만들 수 있습니다. 다음 요청에는 'w'라는 두 개의 쿼리 매개변수가 포함됩니다.
http://myCo.com/basepath/v1/a/b/c/d?w=1&w=2
ExtractVariables 정책에서 이러한 쿼리 매개변수를 참조하려면 색인을 사용합니다. 여기서 쿼리 매개변수의 첫 번째 인스턴스에는 색인이 없고, 두 번째는 색인 2, 세 번째는 색인 3 등에 있습니다. 예를 들어 다음 정책은 요청에서 'w'라는 두 번째 쿼리 매개변수 값을 추출합니다.
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <QueryParam name="w.2"> <Pattern ignoreCase="true">{secondW}</Pattern> </QueryParam> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
urirequest.secondW
변수는 '2'로 설정됩니다. 두 번째 쿼리 매개변수가 요청에서 생략되면 urirequest.secondW
변수는 비어 있습니다. 요청에 이름이 같은 항목이 여러 개 있을 때마다 색인 생성을 사용하세요.
패턴에 특수문자 사용
URI 경로를 일치시킬 때 패턴에 '*' 및 '**' 와일드 카드 문자를 사용할 수 있습니다. 각 항목의 의미는 다음과 같습니다.
- '*'는 경로의 한 세그먼트와 일치합니다.
- '**'는 경로의 여러 세그먼트와 일치합니다.
예를 들어 아래와 같이 <URIPath>
요소에 패턴을 지정합니다.
<URIPath> <Pattern ignoreCase="true">/a/*/{id}</Pattern> <Pattern ignoreCase="true">/a/**/{id}</Pattern> </URIPath>
첫 번째 패턴은 '/a/b/c', '/a/foo/bar' 등과 같은 pathsuffix(기본 경로 다음의 URI 경로의 부분)와 요청을 일치시킵니다. 두 번째 패턴은 '/a/b/c' 및 '/a/foo/bar' 뿐만 아니라 '/a/foo/bar/baz/c'와 같이 '/a/' 뒤의 여러 경로 세그먼트와 일치합니다.
쿼리 매개변수, 헤더, 양식 매개변수에 대한 패턴을 지정할 때 '*' 문자를 모든 문자 수와 일치하도록 지정합니다. 예를 들어 헤더를 일치시킬 때 패턴을 다음과 같이 지정합니다.
*;charset={encoding}
이 패턴은 'text/xml;charset=UTF-16' 및 'application/xml;charset=ASCII' 값과 일치합니다.
ExtractVariables 정책에 전달된 값에 '{'와 같은 특수 문자가 포함된 경우 '%' 문자를 사용하여 이스케이프 처리합니다. 다음 예시에서는 쿼리 매개 변수의 값에서 리터럴 문자로 사용되므로 패턴에서 '{' 및 '}' 문자를 이스케이프합니다.
<QueryParam> <Pattern ignoreCase="true">%{user%} {name}</Pattern> </QueryParam>
이 예시에서 패턴은 '{user} Steve' 값과 일치하지만 'user Steve'라는 값과 일치하지 않습니다.
JSON 및 XML 일치
JSON 및 XML에서 데이터를 추출할 때 정책에 <Variable>
태그를 하나 이상 지정합니다.
<Variable>
태그는 추출된 정보가 저장된 대상 변수의 이름을 지정하고 추출된 정보에 대한 JsonPath(JSON) 또는 XPATH(XML)를 지정합니다.
정책의 모든 <Variable>
태그가 평가되므로 단일 정책의 여러 변수를 입력할 수 있습니다. <Variable>
태그가 JSON 또는 XML의 유효한 필드로 평가되지 않으면 해당 변수가 생성되지 않습니다.
다음 예시에서는 응답의 JSON 본문에서 두 변수를 입력하는 ExtractVariables 정책을 보여줍니다.
<ExtractVariables name="ExtractVariables-3"> <Source>response</Source> <JSONPayload> <Variable name="latitude" type="float"> <JSONPath>$.results[0].geometry.location.lat</JSONPath> </Variable> <Variable name="longitude" type="float"> <JSONPath>$.results[0].geometry.location.lng</JSONPath> </Variable> </JSONPayload> <VariablePrefix>geocoderesponse</VariablePrefix> </ExtractVariables>
여러 위치에 있는 동일한 변수에 쓰기
설정할 변수의 이름을 선택할 때는 주의해야 합니다. 정책은 첫 번째 추출 패턴에서 마지막 추출 패턴으로 순차적으로 실행됩니다. 정책이 여러 위치에서 동일한 변수에 값을 쓰는 경우 정책의 마지막 쓰기가 변수의 값을 결정합니다. (원하는 대로 할 수 있습니다.)
예를 들어 다음과 같이 쿼리 매개변수 또는 헤더에서 전달할 수 있는 토큰 값을 추출하려고 합니다.
<!-- If token only in query param, the query param determines the value. If token is found in both the query param and header, header sets value. --> <QueryParam name="token"> <Pattern ignoreCase="true">{tokenValue}</Pattern> </QueryParam> <!-- Overwrite tokenValue even if it was found in query parameter. --> <Header name="Token"> <Pattern ignoreCase="true">{tokenValue}</Pattern> </Header>
일치하는 항목이 없을 때의 결과 제어
패턴이 일치하지 않으면 해당 변수가 생성되지 않습니다. 따라서 다른 정책이 변수를 참조하는 경우 오류가 발생할 수 있습니다.
한 가지 옵션은 변수를 참조하는 정책에서 <IgnoreUnresolvedVariables>
를 true로 설정하여 해결할 수 없는 변수를 빈 문자열(null)로 처리하도록 정책을 구성하는 것입니다.
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
요소 참조
요소 참조는 ExtractVariables 정책의 요소 및 속성을 설명합니다.
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName> 1</DisplayName> <Source clearPayload="true|false">request</Source> <VariablePrefix>myprefix</VariablePrefix> <IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables> <URIPath> <Pattern ignoreCase="false">/accounts/{id}</Pattern> </URIPath> <QueryParam name="code"> <Pattern ignoreCase="true">DBN{dbncode}</Pattern> </QueryParam> <Header name="Authorization"> <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern> </Header> <FormParam name="greeting"> <Pattern>hello {user}</Pattern> </FormParam> <Variable name="request.content"> <Pattern>hello {user}</Pattern> </Variable> <JSONPayload> <Variable name="name"> <JSONPath>{example}</JSONPath> </Variable> </JSONPayload> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="name" type="boolean"> <XPath>/test/example</XPath> </Variable> </XMLPayload> </ExtractVariables>
<ExtractVariables> 속성
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
다음 표는 모든 정책 상위 요소의 공통 속성에 대해 설명합니다.
속성 | 설명 | 기본값 | Presence |
---|---|---|---|
name |
정책의 내부 이름입니다. 원하는 경우 |
해당 사항 없음 | 필수 |
continueOnError |
정책이 실패할 경우 오류가 반환되도록 하려면 정책이 실패해도 흐름 실행이 계속되도록 하려면 |
false | 선택사항 |
enabled |
정책을 시행하려면 정책을 중지하려면 |
true | 선택사항 |
async |
이 속성은 지원이 중단되었습니다. |
false | 지원 중단됨 |
<DisplayName> 요소
name
속성 외에도 이 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름으로 라벨을 지정합니다.
<DisplayName>Policy Display Name</DisplayName>
기본값 |
해당 사항 없음 이 요소를 생략하면 정책 |
---|---|
Presence | 선택사항 |
유형 | 문자열 |
<Source> 요소
(선택사항) 파싱할 변수를 지정합니다. <Source>
의 기본값은 message
입니다. message
값은 상황에 따라 다릅니다. 요청 흐름에서 message
는 요청 메시지로 확인됩니다. 응답 흐름에서 message
는 응답 메시지로 확인됩니다.
이 정책을 사용하여 요청 또는 응답 메시지에서 정보를 추출하는 경우가 많지만 모든 변수에서 정보를 추출하는 데 사용할 수 있습니다. 예를 들어 AccessEntity 정책에서 생성된 항목 및 서비스 콜아웃 정책에서 반환한 데이터에서 정보를 추출하거나 XML 또는 JSON 객체에서 정보를 추출하는 데 사용할 수 있습니다.
<Source>
를 확인할 수 없거나 메시지가 아닌 유형으로 확인되면 정책이 응답하지 않습니다.
<Source clearPayload="true|false">request</Source>
기본값: | 메시지 |
Presence: | 선택사항 |
유형: | 문자열 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
clearPayload |
여기에서 데이터를 추출한 후 ExtractVariables를 실행한 후 소스 메시지가 필요하지 않은 경우에만 |
false |
선택사항 | 불리언 |
<VariablePrefix> 요소
(선택사항) 전체 변수 이름은 <VariablePrefix>
, 점, <Pattern>
요소 또는 <Variable>
요소에서 {중괄호}로 정의한 이름을 결합하여 생성됩니다. 예를 들면 myprefix.id
, myprefix.dbncode
, myprefix.oauthtoken.
입니다.
<VariablePrefix>myprefix</VariablePrefix>
예를 들어 이름 값이 'user'라고 가정해 보겠습니다.
<VariablePrefix>
를 지정하지 않으면 추출된 값이user
라는 변수에 할당됩니다.<VariablePrefix>
가 myprefix로 지정되면 추출된 값이myprefix.user
라는 변수에 할당됩니다.
기본값: | 해당 사항 없음 |
Presence: | 선택사항 |
유형: | 문자열 |
<IgnoreUnresolvedVariables> 요소
(선택사항) 확인할 수 없는 변수를 빈 문자열(null)로 처리하려면 true
로 설정합니다. 참조된 변수를 확인할 수 없을 때 정책에 오류를 발생시키려면 false
로 설정합니다.
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
기본값: | 거짓 |
Presence: | 선택사항 |
유형: | 불리언 |
<URIPath> 요소
(선택사항이지만 자세한 내용은 아래 표의 현재 상태 행을 참조하세요.) request
소스 메시지의 proxy.pathsuffix에서 값을 추출합니다. 패턴에 적용된 경로는 proxy.pathsuffix이며 API 프록시의 기본 경로를 포함하지 않습니다. 소스 메시지가 response
의 메시지 유형으로 확인되는 경우 이 요소는 아무 작업도 수행하지 않습니다.
<URIPath> <Pattern ignoreCase="false">/accounts/{id}</Pattern> </URIPath>
다음과 같이 여러 <Pattern>
요소를 사용할 수 있습니다.
<URIPath> <Pattern ignoreCase="false">/accounts/{id}</Pattern> <Pattern ignoreCase="false">/accounts/{id}/transactions/{index}</Pattern> </URIPath>
기본값: | 해당 사항 없음 |
Presence: | 선택사항입니다. 하지만 다음 중 하나 이상을 포함해야 합니다.
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> ,
<XMLPayload>. |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
ignoreCase | 패턴 일치 시 대소문자를 무시하도록 지정합니다. |
false |
선택사항 | 불리언 |
<QueryParam> 요소
(선택사항이지만 자세한 내용은 아래 표의 현재 상태 행을 참조하세요.) request
소스 메시지의 지정된 쿼리 매개변수에서 값을 추출합니다. 소스 메시지가 response
의 메시지 유형으로 확인되는 경우 이 요소는 아무 작업도 수행하지 않습니다.
<QueryParam name="code"> <Pattern ignoreCase="true">DBN{dbncode}</Pattern> </QueryParam>
여러 쿼리 매개변수의 이름이 같으면 색인을 사용하여 매개변수를 참조합니다.
<QueryParam name="w.2"> <Pattern ignoreCase="true">{secondW}</Pattern> </QueryParam>
기본값: | 해당 사항 없음 |
Presence: | 선택사항입니다. 하지만 다음 중 하나 이상을 포함해야 합니다.
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> ,
<XMLPayload>. |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
name | 쿼리 매개변수의 이름을 지정합니다. 여러 쿼리 매개변수의 이름이 같으면 색인이 생성된 참조를 사용합니다. 여기서 쿼리 매개변수의 첫 번째 인스턴스에는 색인이 없고, 두 번째는 색인 2, 세 번째는 색인 3입니다. |
해당 사항 없음 |
필수 | 문자열 |
<Header> 요소
(선택사항이지만 자세한 내용은 아래 표의 현재 상태 행을 참조하세요.) 지정된 request
또는 response
메시지의 지정된 HTTP 헤더에서 값을 추출합니다. 여러 헤더의 이름이 같으면 해당 값이 배열에 저장됩니다.
<!-- The name is the actual header name. --> <Header name="Authorization"> <!-- Provide a name for your new custom variable here. --> <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern> </Header>
이름이 같은 헤더가 여러 개 있는 경우 색인을 사용하여 배열의 개별 헤더를 참조합니다.
<Header name="myHeader.2"> <Pattern ignoreCase="true">{secondHeader}</Pattern> </Header>
또는 다음을 수행하여 배열의 모든 헤더를 나열할 수 있습니다.
<Header name="myHeader.values"> <Pattern ignoreCase="true">{myHeaders}</Pattern> </Header>
기본값: | 해당 사항 없음 |
Presence: | 선택사항입니다. 하지만 다음 중 하나 이상을 포함해야 합니다.
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> ,
<XMLPayload>. |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
name | 값을 추출할 헤더의 이름을 지정합니다. 여러 헤더의 이름이 같으면 색인이 생성된 참조를 사용합니다. 여기서 헤더의 첫 번째 인스턴스에는 색인이 없고, 두 번째는 색인 2, 세 번째는 색인 3입니다. .values 를 사용하여 배열의 모든 헤더를 가져옵니다. |
해당 사항 없음 |
필수 | 문자열 |
<FormParam> 요소
(선택사항이지만 자세한 내용은 아래 표의 현재 상태 행을 참조하세요.) 지정된 request
또는 response
메시지의 지정된 양식 매개변수에서 값을 추출합니다. 지정된 메시지의 Content-Type
헤더가 application/x-www-form-urlencoded
인 경우에만 양식 매개변수를 추출할 수 있습니다.
<FormParam name="greeting"> <Pattern>hello {user}</Pattern> </FormParam>
기본값: | 해당 사항 없음 |
Presence: | 선택사항입니다. 하지만 다음 중 하나 이상을 포함해야 합니다.
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> ,
<XMLPayload>. |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
name | 값을 추출할 양식 매개변수의 이름입니다. |
해당 사항 없음 |
필수 | 문자열 |
<Variable> 요소
(선택사항이지만 자세한 내용은 아래 표의 현재 상태 행을 참조하세요.) 값을 추출할 변수의 이름을 지정합니다.
<Variable name="myVar"> <Pattern>hello {user}</Pattern> </Variable>
변수에서 두 값을 추출하려면 다음 안내를 따르세요.
<Variable name="myVar"> <Pattern>hello {firstName} {lastName}</Pattern> </Variable>
기본값: | 해당 사항 없음 |
Presence: | 선택사항입니다. 하지만 다음 중 하나 이상을 포함해야 합니다.
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> ,
<XMLPayload>. |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
name | 값을 추출할 변수의 이름입니다. |
해당 사항 없음 |
필수 | 문자열 |
<JSONPayload> 요소
(선택사항이지만 자세한 내용은 아래 표의 현재 상태 행을 참조하세요.) 변수 값을 추출할 JSON 형식의 메시지를 지정합니다. JSON 추출은 메시지의 Content-Type
헤더가 application/json
인 경우에만 수행됩니다.
<JSONPayload> <Variable name="name" type="string"> <JSONPath>{example}</JSONPath> </Variable> </JSONPayload>
기본값: | 해당 사항 없음 |
Presence: | 선택사항입니다. 하지만 다음 중 하나 이상을 포함해야 합니다.
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> ,
<XMLPayload>. |
유형: | 해당 사항 없음 |
<JSONPayload>/<Variable> 요소
(JSONPayload 요소 내에서 필수) 추출된 값이 할당되는 변수를 지정합니다. <JSONPayload>
요소에 다양한 <Variable>
태그를 포함하여 여러 변수를 입력할 수 있습니다.
<Variable name="name" type="string"> <JSONPath>{example}</JSONPath> </Variable>
기본값: | 해당 사항 없음 |
Presence: | JSONPayload 요소 내에서 필수 |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
name |
추출된 값이 할당될 변수의 이름을 지정합니다. |
name |
필수 | 문자열 |
유형 | 변수 값의 데이터 유형을 지정합니다. | 해당 사항 없음 | 선택사항 |
문자열. 다음 중에 선택:
|
<JSONPayload>/<Variable>/<JSONPath> 요소
(JSONPayload:Variable 요소 내에서 필수) JSON 형식 메시지에서 값을 추출하는 데 사용되는 JSON 경로를 지정합니다.
<Variable name="name"> <JSONPath>$.rss.channel.title</JSONPath> </Variable>
기본값: | 해당 사항 없음 |
Presence: | 필수 |
유형: | 문자열 |
<XMLPayload> 요소
(선택사항이지만 자세한 내용은 아래 표의 현재 상태 행을 참조하세요.) 변수 값을 추출할 XML 형식의 메시지를 지정합니다. XML 페이로드는 메시지의 Content-Type
헤더가 text/xml
, application/xml
, application/*+xml
인 경우에만 추출됩니다.
<XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="name" type="boolean"> <XPath>/apigee:test/apigee:example</XPath> </Variable> </XMLPayload>
기본값: | 해당 사항 없음 |
Presence: | 선택사항입니다. 하지만 다음 중 하나 이상을 포함해야 합니다.
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> ,
<XMLPayload>. |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
stopPayloadProcessing |
하나의 변수가 채워진 후 XPath 평가를 중지하려면 |
false |
선택사항 | 불리언 |
<XMLPayload>/<Namespaces> 요소
(선택사항) XPath 평가에서 사용할 네임스페이스를 지정합니다. XPath 표현식에서 네임스페이스를 사용하는 경우 다음 예시와 같이 여기에서 네임스페이스를 선언해야 합니다.
<XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload>
XPath 표현식에서 네임스페이스를 사용하지 않는 경우 다음 예시와 같이 <Namespaces>
요소를 생략하거나 주석 처리할 수 있습니다.
<XMLPayload stopPayloadProcessing="false"> <!-- <Namespaces/> --> <Variable name="legName" type="string"> <XPath>/Directions/route/leg/name</XPath> </Variable> </XMLPayload>
기본값: | 해당 사항 없음 |
Presence: | 선택사항 |
유형: | 문자열 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
prefix |
네임스페이스 프리픽스 |
해당 사항 없음 |
필수 | 문자열 |
<XMLPayload>/<Variable> 요소
(선택사항) 추출된 값이 할당될 변수를 지정합니다.
<Variable name="name" type="boolean"> <XPath>/test/example</XPath> </Variable>
기본값: | 해당 사항 없음 |
Presence: | 선택사항 |
유형: | 해당 사항 없음 |
속성
속성 | 설명 | 기본값 | Presence | 유형 |
---|---|---|---|---|
name |
추출된 값이 할당될 변수의 이름을 지정합니다. |
name |
필수 | 문자열 |
유형 | 변수 값의 데이터 유형을 지정합니다. | 불리언 | 선택사항 |
문자열. 다음 중에 선택:
|
<XMLPayload>/<Variable>/<XPath> 요소
(XMLPayload:Variable 요소 내에서 필수) 변수에 정의된 XPath를 지정합니다. XPath 1.0 표현식만 지원됩니다.
<Variable name="name" type="boolean"> <XPath>/test/example</XPath> </Variable>
네임스페이스 예시 XPath 표현식에 네임스페이스를 사용하는 경우 정책의 <XMLPayload><Namespaces>
섹션에서 네임스페이스를 선언해야 합니다.
<Variable name="name" type="boolean"> <XPath>/foo:test/foo:example</XPath> </Variable>
기본값: | 해당 사항 없음 |
Presence: | 필수 |
유형: | 문자열 |
오류 참조
이 섹션에서는 반환되는 오류 코드 및 오류 메시지와 이 정책이 오류를 트리거할 때 Apigee에서 설정한 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항 및 오류 처리를 참조하세요.
런타임 오류
이러한 오류는 정책이 실행될 때 발생할 수 있습니다.
오류 코드 | HTTP 상태 | 원인 | 수정 |
---|---|---|---|
steps.extractvariables.ExecutionFailed |
500 |
이 오류는 다음과 같은 경우에 발생합니다.
|
build |
steps.extractvariables.ImmutableVariable |
500 |
정책에 사용된 변수는 변경할 수 없습니다. 정책에서 이 변수를 설정할 수 없습니다. | 해당 사항 없음 |
steps.extractvariables.InvalidJSONPath |
500 |
이 오류는 정책의 JSONPath 요소에 잘못된 JSON 경로가 사용되는 경우 발생합니다. 예를 들어 JSON 페이로드에는 Name 객체가 없지만 정책의 경로로 Name 을 지정하면 이 오류가 발생합니다. |
build |
steps.extractvariables.JsonPathParsingFailure |
500 |
이 오류는 정책이 JSON 경로를 파싱하고 Source 요소에 지정된 흐름 변수에서 데이터를 추출할 수 없는 경우에 발생합니다. 일반적으로 Source 요소에 지정된 흐름 변수가 현재 흐름에 없으면 이 오류가 발생합니다. |
build |
steps.extractvariables.SetVariableFailed |
500 |
이 오류는 정책이 값을 변수로 설정하지 못하는 경우에 발생합니다. 이러한 오류는 일반적으로 이름이 중첩된 점으로 구분된 형식으로 된 동일한 단어로 시작하는 여러 변수에 값을 할당하려고 하면 발생합니다. | build |
steps.extractvariables.SourceMessageNotAvailable |
500 |
이 오류는 SOAPMessageValidation 정책의 Source 요소에 지정된 message 변수가 다음 중 하나일 때 발생합니다.
|
build |
steps.extractvariables.UnableToCast |
500 |
이 오류는 정책이 추출된 값을 변수로 전송할 수 없는 경우에 발생합니다. 일반적으로 한 데이터 유형의 값을 다른 데이터 유형의 변수로 설정하려고 하면 이 오류가 발생합니다. | build |
배포 오류
이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.
오류 이름 | 원인 | 수정 |
---|---|---|
NothingToExtract |
정책에 URIPath , QueryParam , Header , FormParam , XMLPayload 또는 JSONPayload 요소가 없으면 추출할 대상이 없기 떄문에 API 프록시 배포는 실패합니다. |
build |
NONEmptyPrefixMappedToEmptyURI |
이 오류는 정책에, XMLPayload 요소 아래의 Namespace 요소에서 정의된 프리픽스가 있지만 URI가 정의되지 않은 경우에 발생합니다. |
build |
DuplicatePrefix |
이 오류는 XMLPayload 요소 아래의 Namespace 요소에서 두 번 이상 정의된 프리픽스와 동일한 프리픽스가 정책에 있으면 발생합니다. |
build |
NoXPathsToEvaluate |
정책의 XMLPayload 요소 내에 XPath 요소가 없으면 이 오류로 인해 API 프록시 배포가 실패합니다.
|
build |
EmptyXPathExpression |
정책이 XMLPayload 요소 내에 빈 XPath 표현식을 포함하는 경우 API 프록시 배포에 실패합니다. |
build |
NoJSONPathsToEvaluate |
정책의 JSONPayload 요소 내에 JSONPath 요소가 없으면 이 오류로 인해 API 프록시 배포가 실패합니다. |
build |
EmptyJSONPathExpression |
정책이 XMLPayload 요소 내에 빈 XPath 표현식을 포함하는 경우 API 프록시 배포에 실패합니다. |
build |
MissingName |
정책이 QueryParam , Header , FormParam 또는 Variable 과 같은 정책 요소 안에 필요한 name 속성을 가지지 않는다면 API 프록시가 실패합니다. |
build |
PatternWithoutVariable |
정책에 Pattern 요소 내에 지정된 변수가 없으면 API 프록시 배포는 실패합니다. Pattern 요소에는 추출된 데이터가 저장될 변수의 이름이 필요합니다. |
build |
CannotBeConvertedToNodeset |
정책에 Variable 유형이 nodeset로 정의된 XPath 표현식이 있지만 표현식을 nodeset로 변환할 수 없으면 API 프록시 배포가 실패합니다. |
build |
JSONPathCompilationFailed |
정책에서 지정된 JSON 경로를 컴파일할 수 없습니다. | 해당 사항 없음 |
InstantiationFailed |
정책을 인스턴스화할 수 없습니다. | 해당 사항 없음 |
XPathCompilationFailed |
XPath 요소에 사용된 프리픽스 또는 값이 정책에 선언된 네임스페이스의 일부가 아닌 경우 API 프록시의 배포는 실패합니다. |
build |
InvalidPattern |
정책의 URIPath , QueryParam , Header , FormParam , XMLPayload 또는 JSONPayload 와 같은 요소에서 Pattern 요소의 정의가 잘못되었으면 API 프록시 배포가 실패합니다.
|
build |
오류 변수
이러한 변수는 이 정책이 런타임 시 오류를 트리거할 때 설정됩니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항을 참조하세요.
변수 | 장소 | 예 |
---|---|---|
fault.name="fault_name" |
fault_name은 위의 런타임 오류 표에 나열된 오류 이름입니다. 오류 이름은 오류 코드의 마지막 부분입니다. | fault.name = "SourceMessageNotAvailable" |
extractvariables.policy_name.failed |
policy_name은 오류를 발생시킨 정책의 사용자 지정 이름입니다. | extractvariables.EV-ParseJsonResponse.failed = true |
오류 응답 예시
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse" } }
오류 규칙 예시
<FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name = "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition> </FaultRule>