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