Как установить формат ответа на сервис REST в BW6
Я новичок в BW6 (v.6.3.1), и я играю с его функциями REST. В настоящее время я создаю очень простой эхо-сервис, чтобы выяснить, как он обрабатывает параметры и т. Д. Одна из вещей, которые я заметил, - это то, что я могу указать несколько форматов клиента ответа, а именно XML и JSON. Но я не могу найти, как я могу указать, какой вывод использовать в реальном ответе.
В настоящее время я установил следующий путь службы ресурсов:
/echo/{param}.{format}
Я хочу использовать параметр формата для управления выводом, который я получу. Так
/echo/printme.xml
приведет к
<messageBody>printme</messageBody> (or something to that extent)
А также
/echo/printme.json
приведет к
printme
Я попробовал несколько подходов, разделив поток на основе содержимого "формата", но безрезультатно. Если я проверил JSON в качестве формата ответа клиента, он ответит JSON. Только если XML является единственным проверенным форматом клиента ответа, ответ будет выводить XML. BW прозрачно обрабатывает рендеринг JSON или XML.
Итак, как я могу сказать BW выводить в формате XML или JSON, когда оба они выбраны в качестве формата ответа клиента?
Изменить: используя пользовательский интерфейс Swagger я понял, как я могу управлять этим поведением. Указав следующий заголовок:
curl -X GET --header "Accept: application/xml" "http://localhost:8080/echo"
1 ответ
Согласно документации
Выберите Invoke REST API
Вы можете выбрать тип (запрос или ответ), как показано ниже:
Если вы щелкните по нему, есть три варианта JSON, XML и Custom. Если вы хотите выбрать не JSON и XML, а затем выберите Custom.
Custom (For RequestType): Custom: чтобы переопределить значение Content-Type на вкладке Input, выберите CUSTOM и укажите значение на вкладке Input.
Custom (For ResponseType): чтобы переопределить значение заголовка Accept на вкладке Input, выберите CUSTOM и укажите значение на вкладке Input.
Ниже находится вкладка "Вход", где вы можете переопределить, когда для типа установлено значение "Пользовательский":