Проблема преобразования json в wso2 API Manager

Мы пытаемся использовать wso2 api manager для доступа к некоторым нашим службам RESTful. Остальные службы ожидают полезной нагрузки JSON. Когда json-запрос отправляется в api manager, он преобразует json-запрос в xml и снова пересылает его в конечную точку, затем преобразует в json-обратно. Полученный json не соответствует точно исходному запросу в одном из наших случаев. Например, если запрос содержит массив элементов и если в массив передан только один элемент, тогда, когда api manager направляет запрос конечной точке, символы массива ([,]) удаляются. например. наш первоначальный запрос был

{
    "entities": [
    {
        "name":"KK71CP20000523A1",
        "descr":"VaS",
        "mnf":"BCT",
        "mdlyr":"2012"
    }
    ]
}

запрос, отправленный менеджером API, был

{
    "entities": 
    {
        "name":"KK71CP20000523A1",
        "descr":"VaS",
        "mnf":"BCT",
        "mdlyr":"2012"
    }

}

Обертка массива удалена под элементом сущностей. Когда количество элементов больше одного, символы массива сохраняются.

Мы сталкивались с той же проблемой в ESB и ранее. Но мы обошли эту проблему, расширив JSONMessageFormatter по умолчанию и используя метод seriliazeAsArray, доступный в библиотеке jettison. Но мы не хотим делать эту настройку в API Manager. Есть ли лучший способ исправить эту проблему? Любой патч, доступный от wso2, чтобы исправить это?

1 ответ

Все углеродные продукты поставляются с одинаковыми компоновщиками и форматерами сообщений, для вашего случая вы можете проверить с помощью JSONStreambuilder и форматера. Посмотрите на эту ссылку,

Другие вопросы по тегам