我们正在尝试使用 wso2 api manager 来访问我们的一些 RESTful 服务。其余服务需要一个 json 有效负载。当 json 请求发送到 api manager 时,它将 json 请求转换为 xml,并在转发到实际端点时再次转换为 json。在我们的一种情况下,生成的 json 与原始请求不完全匹配。例如,如果 rquest 包含一个元素数组,并且如果数组中只传递了一个元素,那么当 api 管理器将请求转发到端点时,数组字符 ([,]) 将被删除。例如。我们最初的要求是
{
"entities": [
{
"name":"KK71CP20000523A1",
"descr":"VaS",
"mnf":"BCT",
"mdlyr":"2012"
}
]
}
api manager 发送的请求是
{
"entities":
{
"name":"KK71CP20000523A1",
"descr":"VaS",
"mnf":"BCT",
"mdlyr":"2012"
}
}
数组包装在实体元素下被删除。当元素的数量大于一个时,则保留数组字符。
我们之前在 ESB 中也遇到过同样的问题。但是我们通过扩展默认 JSONMessageFormatter 并使用 jettison 库中提供的 seriliazeAsArray 方法解决了这个问题。但是我们不想在 API Manager 中进行这种定制。有没有更好的方法来解决这个问题?wso2有什么补丁可以解决这个问题吗?