изменить полезную нагрузку запроса в WSO2

Я новичок в WSO2. Я проксировал службу. Теперь я пытаюсь изменить содержимое запроса на ввод. Серверная часть ожидает запроса, как показано ниже

 <input>
 <newParam>    
 {
    "id" :"8888822"   
 }
 </newParam>
 </input>

Но интерфейс будет отправлять запрос, как показано ниже:

 {
    "id" :"8888822"   
 }

без начального и конечного тегов.

Любые документы или ссылки, которые помогут мне в этом, будут мне очень полезны.

Заранее спасибо.


person user56690    schedule 17.08.2015    source источник


Ответы (1)


Вы можете добиться этого с помощью посредника Payload Factory [1]. В следующем примере вы просто извлекаете значение поля «id» из тела запроса и присоединяете его к заранее заданной полезной нагрузке.

    <log level="custom">
      <property name="IncomingMessage" expression="$body" />
   </log>
    <payloadFactory media-type="xml">
        <format>
             <input>
             <newParam>    
             $1
             </newParam>
             </input>
        </format>
        <args>
            <arg evaluator="xml" expression="fn:concat('{&quot;id&quot;:&quot;', //id/text(), '&quot;}')" />
        </args>
    </payloadFactory>
    <log level="custom">
      <property name="TransformedMessage" expression="$body" />
   </log>

Вы увидите IncomingMessage и TransformedMessage в wso2carbon.log.

[1] - https://docs.wso2.com/display/ESB481/PayloadFactory+Mediator

person chamilad    schedule 17.08.2015
comment
Привет, Чамила, Большое спасибо за ответ. Это помогает мне двигаться вперед. Я применил посредник фабрики полезной нагрузки, но я просто проверяю, могу ли я видеть входящий входной контент и как он преобразуется после применения политики, в трассировке или журналах, потому что я не вижу его в server.log - person user56690; 18.08.2015
comment
Отредактировал ответ, чтобы включить сообщения журнала. Надеюсь это поможет. - person chamilad; 18.08.2015