Я хочу использовать WSO2 для создания конечной точки REST api, которая будет иметь дополнительные параметры запроса. Но я получаю сообщение об ошибке несовместимости параметров (см. Ниже), когда я опускаю параметр.
Я начал с создания службы данных WSO2 (SOAP конечная точка). Я пометил некоторые параметры как необязательные и указал для них значения по умолчанию. В прокси-сервере tryit ajax все работало нормально.
Затем я использовал диспетчер API для создания REST API из этой SOAP конечной точки, следуя этому руководству . Теперь, если я вызываю конечную точку REST без указания определенного параметра, я получаю сообщение об ошибке. Пример: Предположим, конечная точка принимает 3 параметра, из которых (param3) является необязательным.
curl --data "param1=1¶m2=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 и опустить некоторые необязательные параметры?