ParsePayload 정책

확장 가능한 정책

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

ParsePayload 정책은 구조화된 요청 페이로드 (예: JSON-RPC 2.0)에서 메시지 흐름 변수로 논리적 작업을 추출합니다. 이 기능을 사용하면 프록시 관리자가 기본 리소스 경로나 쿼리 매개변수가 아닌 클라이언트 요청 콘텐츠를 기반으로 직접 조건부 라우팅 로직을 구현할 수 있습니다.

이 정책은 확장 가능한 정책이며, 이 정책을 사용하면 Apigee 라이선스에 따라 비용 또는 사용률이 영향을 받을 수 있습니다. 정책 유형 및 사용 영향에 대한 자세한 내용은 정책 유형을 참조하세요.

<ParsePayload> 요소

애플리케이션 로직 평가 주기에 적용되는 유효성 검사 파싱 속성을 지정합니다.

필수 여부 필수
상위 요소 해당 사항 없음
하위 요소 <Source>
<PayloadType>
<Protocol>

구문

ParsePayload 요소는 다음 문법을 사용합니다.

<ParsePayload continueOnError="[false|true]" enabled="[true|false]" name="policy_name">
    <Source>request</Source>
    <PayloadType>JSON-RPC-2.0</PayloadType>
    <Protocol>MCP</Protocol>
</ParsePayload>

다음 예시는 ParsePayload 정책의 표준 구성을 보여줍니다.

<ParsePayload continueOnError="false" enabled="true" name="parse-payload-mcp">
    <Source>request</Source>
    <PayloadType>JSON-RPC-2.0</PayloadType>
    <Protocol>MCP</Protocol>
</ParsePayload>

<Source>

런타임 평가를 통해 즉시 처리되는 요청/응답 컨테이너 컨텍스트를 나타냅니다.

<Source>request</Source>
속성 설명 기본값 접속 상태
해당 사항 없음 텍스트 노드 값입니다. request 또는 response이어야 합니다. request 선택사항

<PayloadType>

데이터 처리 요구사항과 관련하여 인정되는 전반적인 평가 구조를 관리합니다.

<PayloadType>JSON-RPC-2.0</PayloadType>
속성 설명 기본값 접속 상태
해당 사항 없음 텍스트 노드 값입니다. 지원되는 값: JSON-RPC-2.0. 해당 사항 없음 필수

<Protocol>

타겟 인터페이스 선언과 정확히 일치하는 형식 지정 동작을 결정합니다.

<Protocol>MCP</Protocol>
속성 설명 기본값 접속 상태
해당 사항 없음 텍스트 노드 값입니다. 지원되는 값은 MCP입니다. 해당 사항 없음 필수

추출된 흐름 변수

정책이 성공적으로 실행되면 정책 인스턴스 이름이 접두사로 지정된 흐름 변수가 채워집니다. 이러한 변수는 parsepayload.policyName.suffix 패턴을 따릅니다. 여기서 policyName은 정책 XML 구성의 name 속성 값입니다. 이 명명 규칙은 VerifyAPIKey와 같은 다른 Apigee 정책과 일치하며 동일한 프록시에서 여러 ParsePayload 정책이 별도의 변수 네임스페이스를 유지할 수 있도록 합니다.

parse-payload-mcp이라는 정책의 경우 다음 변수가 설정됩니다.

변수 이름 설명
parsepayload.parse-payload-mcp.operation 구성된 실행 식별자입니다.
  • tools/call의 경우 호출되는 특정 도구를 구분하는 tools/call/{name} (예: tools/call/get_weather)입니다.
  • tools/list의 경우 tools/list이며, 특정 도구를 타겟팅하지 않고 사용 가능한 도구를 나열할 때 사용됩니다.
parsepayload.parse-payload-mcp.json-rpc.request.method JSON-RPC 요청의 method 필드 (예: tools/call 또는 tools/list)
parsepayload.parse-payload-mcp.json-rpc.request.id JSON-RPC 요청의 id 필드입니다.
parsepayload.parse-payload-mcp.json-rpc.request.params.name params 내부의 name 필드 (tools/call에 대해 채워져 도구를 식별함).
parsepayload.parse-payload-mcp.json-rpc.request.params.arguments.{arg_name} arguments 객체에 전달된 인수입니다. 문자열 값은 직접 저장되고 중첩된 객체나 배열은 직렬화된 JSON 문자열로 저장됩니다.

간단한 인수가 포함된 다음 JSON-RPC 요청 페이로드의 경우:

{
  "jsonrpc": "2.0",
  "id": "req_001",
  "method": "tools/call",
  "params": {
    "name": "get_weather",
    "arguments": {
      "location": "San Francisco, CA",
      "forecast_days": 3
    }
  }
}

정책은 다음 변수를 채웁니다.

변수
parsepayload.parse-payload-mcp.operation tools/call/get_weather
parsepayload.parse-payload-mcp.json-rpc.request.method tools/call
parsepayload.parse-payload-mcp.json-rpc.request.id req_001
parsepayload.parse-payload-mcp.json-rpc.request.params.name get_weather
parsepayload.parse-payload-mcp.json-rpc.request.params.arguments.location San Francisco, CA
parsepayload.parse-payload-mcp.json-rpc.request.params.arguments.forecast_days 3