В Hello World
встроен WSO2 APIm 4.1.0 GA release
API. Я добавил политику JSONtoXML
из policy List
в поток ответов, выполнив следующие действия, описанные в WSO2 APIM Doc, и развернул на портале DEV, выбрав опцию save and deploy
JsonToXML.j2 — содержимое файла политики:
<property name = "messageType" value = "application/xml" scope = "axis2"/>
Политика в издательстве:
Когда я пробую этот API на портале DEV или через postman
, он по-прежнему дает ответ в формате JSON
, а не в XML
Портал WSO2 DEV — ПОПРОБУЙТЕ:
ПОЧТАЛЬОН:
Как предложено ниже — попадание в последовательность шлюза API:
Запрос CURL, как показано ниже:
curl -k "https://127.0.0.1:9443/api/am/gateway/v2/sequence?apiName=HelloWorld&version=1.0.0" -H "Authorization: Bearer eyJ4NXQiOiJOMkpqTWpOaU0xxx"
Примечание: действительный токен передается в приведенном выше запросе curl, тот же токен используется при вызове URL-адреса APIM, который дает ответ серверной части.
Я что-то пропустил, а если нет, то почему эта политика не работает в WSO2 APIM? Уточните, пожалуйста, в том же
Я просто следовал тому же пути к API Pizzashack в пакете APIM 4.1.0 GA. Он работал, как и ожидалось, без каких-либо проблем.
Можете ли вы подтвердить, что создали новую версию после добавления этой политики и развернули ее на шлюзе?
Если вы тоже это сделали, мы должны использовать Rest API шлюза и проверить последовательности для HelloAPI. Должна быть новая последовательность с прикрепленной выше политикой.
Редактировать:
Если вызов последовательности не содержит ответа, это означает, что политика не была развернута должным образом. Чтобы правильно применить политику, создайте новую версию и разверните ее в шлюзе.
Используйте базовую аутентификацию с учетными данными администратора для этого запроса API. По умолчанию "Авторизация: базовая YWRtaW46YWRtaW4 = "
Привет @Lakshitha, спасибо за предложение, после использования базовой аутентификации последовательность пуста, ответ ниже. { "последовательности": [] }
Это означает, что политика не была применена. Создадим еще одну ревизию и развернем? Давайте проверим последовательность и после этого. Также убедитесь, что политика уже применена к нужному ресурсу и что API сохранен.
@Justin Я обновил ответ с помощью этих шагов.
Как было предложено @Lakshitha, я следовал ниже ШАГАМ и работал, как ожидалось.
GET
ресурсе HelloWorld APInew Revision
TRY OUT
и теперь получило ответ XML
API-интерфейс шлюза также дает последовательный ответ, например НИЖЕ.
Привет @Lakshitha, Да, развернуто как новая версия. Как вы предложили, протестируйте запрос на завивание через почтальона, чтобы проверить последовательность, которая дает 401 ОШИБКУ. curl -k "127.0.0.1:9443/api/am/gateway/v2/…" -H "Авторизация: носитель eyJ4NXQiOiJOMkpqTWpOaU0xxx" Примечание: допустимый токен передается в разделе заголовка, и тот же токен используется при вызове URL-адреса APIM. Добавлено изображение в вопросе