我配置了WSO2 API Manager,一切似乎都运行良好。
困扰我的唯一问题是,在Auth异常的情况下,API管理器总是返回具有XML内容类型的响应,例如,
<ams:fault xmlns:ams="http://wso2.org/apimanager/security"><ams:code>900904</ams:code><ams:message>Access Token Inactive</ams:message><ams:description>Access failure for API: /exchange, version: 1.0 with key: 1139a466ebfd825aca953ad7259b9f45</ams:description></ams:fault>
如果客户端使用JSON格式与我的Web服务进行通信,则XML响应看起来会有点奇怪。
有没有想法如何让API Manager以JSON格式提供错误响应?
答案 0 :(得分:2)
最近版本的API Manager中有been addressed。通过添加或更新WSO2HOME / repository / deployment / server / synapse-configs / default / sequences / _auth_failure_handler_.xml中的error_message_type
属性,可以将Auth错误设置为json格式:
<property name="error_message_type" value="application/json"/>
我发现这也需要为axis2.xml中的json内容类型选择JSONBuilder
和JSONMessageFormatter
(这是默认设置)。
对于旧版本,this article说明了如何手动执行此操作。