Мы пытаемся использовать wso2 api manager для доступа к некоторым нашим сервисам RESTful. Остальные службы ожидают полезную нагрузку json. Когда json-запрос отправляется менеджеру api, он преобразует json-запрос в xml и снова при пересылке в фактическую конечную точку, которую он преобразует в json назад. В результате json не соответствует точно первоначальному запросу в одном из наших случаев. Например, если rquest содержит массив элементов, и если в массиве передан только один элемент, тогда, когда менеджер api перенаправляет запрос в конечную точку, символы массива ([,]) удаляются. например. наш первоначальный запрос былjson conversion issue in wso2 API Manager
{
"entities": [
{
"name":"KK71CP20000523A1",
"descr":"VaS",
"mnf":"BCT",
"mdlyr":"2012"
}
]
}
отправлен запрос менеджером апи был
{
"entities":
{
"name":"KK71CP20000523A1",
"descr":"VaS",
"mnf":"BCT",
"mdlyr":"2012"
}
}
Оберточная массив удаляют при сущностей элемента. Когда число элементов больше одного, символы массива сохраняются.
Мы столкнулись с той же проблемой в ESB, что и ранее. Но мы работали над проблемой, расширив стандарт JSONMessageFormatter и используя метод seriliazeAsArray, доступный в библиотеке сбрасывания. Но мы не хотим выполнять эту настройку в диспетчере API. Есть ли лучший способ решить эту проблему? Любой патч, доступный от wso2, чтобы исправить это?
Я пробовал JSONStreamBuilder и JSONStreamFormatter. Но все же это работает так же. – bhaskar