2016-10-14 11 views
1

Я использую Wso2 DSS и создаю веб-службы RESTful из Oracle Oracle и пытаюсь вернуть пользовательские сообщения об ошибках в случае, если записи не найдены или не были вызваны с использованием недопустимых параметров. И я также хочу контролировать код возврата HTTP для этих ответов об ошибках.Пользовательские сообщения об ошибках и коды возврата HTTP в WSO2DSS

Например. Допустим, есть веб-сервис:/getemployee/{empno}, который возвращает данные о сотрудниках в формате JSON/XML.

Если я называю getemployee с EMPNO, который не существует в БД, то

  1. Я хочу ответ быть как-то похожее на ниже

    <Error>

    <Error_code>No employee found </Error_code>

    </Error>

У него не должно быть сообщений о нормальных сообщениях сотрудников, которые будут отвечать в ответ на обнаружение сотрудника. В настоящий момент, если запись не найдена по базовому запросу, DSS просто возвращает пустое сообщение только с корневым элементом.

  1. Код ответа HTTP для этого ответа должен быть 404 в отличие от кода успеха 200. По умолчанию все ответы получают код возврата HTTP 200 в DSS.

Возможно ли это вообще, используя DSS?

Цените вашу помощь

+0

можете ли вы установить wso2 esb в середине или просто добавить функции DSS в WSO2 ESB? –

ответ

0

вам потребуется WSO2 ESB, чтобы сделать это. Вы можете сделать прокси-службу в ESB, которая вызовет DSS, а затем преобразует ответ для вас на основе его содержимого и ваших потребностей. Вы можете сделать это с помощью XSLT.

Вы можете установить вручную желаемый HTTP код возврата, используя свойство HTTP_SC:

<property name="HTTP_SC" scope="axis2" type="STRING" value="404"/> 

Вы также можете использовать переключатель и полезную нагрузку фабрику, если вы знаете, что вы получите, и выход будет статичной ,

+0

Спасибо. Я пробовал XSLT в DSS, но он не поддерживает JSON, когда потребитель запрашивает формат возврата как JSON. – pskumar

+0

Вы уверены, что контроль над кодом возврата HTTP возможен с помощью ESB? Я попробую. – pskumar

+0

Да, вы можете установить HTTP-код с помощью свойства HTTP_SC. –