WSO2 DS - необязательные параметры для rest API - PullRequest
0 голосов
/ 07 мая 2020

Я хочу использовать WSO2 для создания конечной точки REST api, которая будет иметь дополнительные параметры запроса. Но я получаю сообщение об ошибке несовместимости параметров (см. Ниже), когда я опускаю параметр.

Я начал с создания службы данных WSO2 (SOAP конечная точка). Я пометил некоторые параметры как необязательные и указал для них значения по умолчанию. В прокси-сервере tryit ajax все работало нормально.

Затем я использовал диспетчер API для создания REST API из этой SOAP конечной точки, следуя этому руководству . Теперь, если я вызываю конечную точку REST без указания определенного параметра, я получаю сообщение об ошибке. Пример: Предположим, конечная точка принимает 3 параметра, из которых (param3) является необязательным.

curl --data "param1=1&param2=2" https...

Я получаю следующую ошибку, потому что param3 отсутствует и интерпретирует его как пустую строку.

Код: INCOMPATIBLE_PARAMETERS_ERROR \ nВложенное исключение: - \ njavax. xml .stream.XMLStreamException: Сообщение об ошибке DS: Ошибка в 'SQLQuery.processStoredProcQuery': для входной строки: \ "\" \ nDS-код: INCOMORAMPATIBLE_PATIBERS [...] Вложенное исключение: - \ n java .lang.NumberFormatException: для входной строки: \ "\" \ n \ n "

Я ожидал, что это сработает, потому что у меня установите параметр param3 как необязательный в службе данных wso2 и установите значение по умолчанию. Но это значение по умолчанию не используется. Вместо этого оно интерпретируется как пустая строка. Я попытался установить атрибут «required» в значение «false» в диспетчере API. Но это не помогло.

Мне кажется, что сопоставление параметров REST с SOAP не работает для необязательных параметров в WSO2. Любая идея, как я могу заставить его работать, поэтому я могу может вызвать конечную точку REST и опустить некоторые необязательные параметры?

...