Я использую WSO2 Integrator 6.6.0, чтобы сделать блокирующий HTTP GET для REST API, который возвращает ответ JSON (HTTP 200 OK).
Но я никогда не вижу тела ответа внутри своих последовательностей. Я не уверен, что делаю не так, исчерпав всю доступную документацию и другие темы.
Последовательность выполнения вызова (упрощенная до анонимности), которая впоследствии регистрирует ответ:
<!-- Remove XML body as not needed for GET request -->
<payloadFactory media-type="json">
<format></format>
<args></args>
</payloadFactory>
<header name="Accept" value="application/json" scope="transport"/>
<property name="NO_ENTITY_BODY" value="true" scope="axis2" type="BOOLEAN" />
<call blocking="true">
<endpoint>
<http method="GET" uri-template="http://my-api/order-status">
</endpoint>
</call>
<property name="RESPONSE" scope="default" type="STRING" value="true"/>
<log level="full">
<property name="response-log" value="Received response"/>
<property expression="$body" name="response-body"/>
<property expression="json-eval($)" name="json-eval-body"/>
</log>
В результате получается просто строка журнала - без тела ответа вообще!
ИНФОРМАЦИЯ {org.apache.synapse.mediators.builtin.LogMediator} - Кому: http: // my-api / order-status, WSAction: urn: mediate, SOAPAction: urn: mediate, MessageID: ID: 414d51204343494153303131202020209ca4175f28ac422e, Directionac422e , response-log = Полученный ответ, response-body = ‹soapenv: Body xmlns: soapenv = http: //schemas.xmlsoap.org/soap/envelope/› ‹/ soapenv: Body›, json-eval-body = {} , Полезная нагрузка: {}
Я вижу запрос в своем приложении API, а также могу видеть, что он правильно возвращает тело ответа в своих журналах. Кроме того, используя Postman для выполнения того же запроса, я получаю следующий ответ JSON с 200 OK и Content-Type appication / json:
{
"order_status": "NOT_FOUND"
}
Внутри WSO2 ничего не вижу! Я хочу иметь возможность преобразовать ответ в формат XML.
Что могло быть не так?