2017-11-13 17 views
0

백엔드로 전송 JSON 페이로드를 수정 WSO2의 API 매니저는 내가 REST API URL이 정의되어

https://hostname/[version]/[service]/[operation]

으로 나는 내부 버전 및 운영을 넣어하기 위해 WSO2의 API 관리자에서 JSON 페이로드를 변환하고 싶습니다.

그래서 WSO2는 다음과 같은 형태로 백엔드로 전송됩니다
POST https://backend/[service] 
{ 
    “version”: [version], 
    “operation”: [operation] 
} 

그래서 내가 JSON 페이로드에 URL에서 버전 및 운영을 넣어해야합니다. 그것을하는 방법?

+0

여러 옵션이있는 JSON 페이로드를 구축 할 수 있습니다 원래의 페이로드 또는 그 대신에 버전이 있습니까? – gusto2

+0

원본 페이로드를 보내고 싶습니다. 원래 페이로드에는 작업 및 버전이 추가됩니다. – user1563721

답변

0

나는 (API 컨텍스트가 아닌) 리소스 URI 정의의 값을 사용하여 새로운 페이로드 및 POST를 만들고 싶습니다.

  • 당신이 방법을 (자원이 POST 방법을 가지고있다) 변경하지 않으 :

    는 가정 할 수 있습니다. 게시

  • 원래 요청뿐만 아니라

당신은 ESB의 건물과 같은 메시지를 A (시냅스) 중개 플로우를 만들 수 있습니다 JSON이다.

조정 연결 문제는 Adding Mediation Extensions 문서에 설명되어 있습니다. 그래서 당신이 작업을 보낼 -이 중재는 중재에서 API

갖는 자원 https://hostname/[version]/[service]/[operation]

의 모든 요청에 ​​대해 실행됩니다, 당신은

<payloadFactory media-type="json"> 
    <format>{ 
     "version":"$1", 
     "service": "$2", 
     "some_original_data": "$3" 
    }</format> 
    <args> 
    <arg expression="get-property('uri.var.version')"/> 
    <arg expression="get-property('uri.var.service')"/> 
    <arg expression="$.person.name" evaluator="json" /> 
    </args> 
</payloadFactory> 
+0

'https : // hostname/01.00/test/myoperation'에서 시도하고 있는데, 항상'version'과'service'를 빈 문자열로 가져올 것입니다. 무엇이 잘못 될 수 있다고 조언 할 수 있습니까? 중재 플로우는 게시물에 정확하게 설명되어 있으며 API 컨텍스트 정의에서'version' 및'service'가 매개 변수로 정의됩니다. payloadFactory가 인수 표현식을 통해 값을 볼 수없는 것 같습니다. – user1563721