You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 API Manager错误响应格式定制及结构修改技术问询

解决WSO2 API Manager自定义JSON错误Payload结构的问题

嘿,我之前在配置WSO2 APIM的JWT认证API时也折腾过类似的需求,既然你已经搞定了XML转JSON的问题,那调整错误响应结构其实就是修改故障序列的事儿,下面给你一步步说怎么操作:

1. 进入目标API的运行时配置

登录WSO2 APIM管理控制台,找到你要修改的那个API(比如你的/employee/1.0.0),切换到Runtime Configurations标签,找到Fault Handling模块。

2. 编辑默认故障序列

默认的错误响应是由内置的Default Fault Sequence生成的,我们需要修改这个序列的Payload生成逻辑:

  • 找到Default Fault Sequence,点击编辑按钮(如果想单独给这个API用,也可以新建一个自定义故障序列再关联)
  • 在序列编辑器里,找到负责生成JSON响应的PayloadFactory中介节点,这就是我们要改的核心部分。

3. 替换Payload模板内容

原来的默认模板是这样的:

<payloadFactory media-type="json">
    <format>{"fault": {"code": $1, "message": "$2", "description": "$3"}}</format>
    <args>
        <arg evaluator="xml" expression="get-property('ERROR_CODE')"/>
        <arg evaluator="xml" expression="get-property('ERROR_MESSAGE')"/>
        <arg evaluator="xml" expression="get-property('ERROR_DESCRIPTION')"/>
    </args>
</payloadFactory>

把它替换成你想要的结构模板:

<payloadFactory media-type="json">
    <format>{"status": "fault", "description": {"code": $1, "message": "$2", "description": "$3"}}</format>
    <args>
        <arg evaluator="xml" expression="get-property('ERROR_CODE')"/>
        <arg evaluator="xml" expression="get-property('ERROR_MESSAGE')"/>
        <arg evaluator="xml" expression="get-property('ERROR_DESCRIPTION')"/>
    </args>
</payloadFactory>

4. 保存并验证效果

  • 保存修改后的序列,然后重新发布API(部分版本可能不需要重新发布,修改后直接生效)
  • 现在再模拟未传Token的请求,就能得到你想要的JSON结构了:
{
  "status": "fault",
  "description": {
    "code": 900901,
    "message": "Invalid Credentials",
    "description": "Access failure for API: /employee/1.0.0, version: 1.0.0 status: (900901) - Invalid Credentials. Make sure you have provided the correct security credentials"
  }
}

额外提示

  • 如果之前碰到注册表访问异常,先检查自己的账号有没有修改序列的权限,或者看看序列里是不是引用了不存在的注册表资源
  • 要是想给所有API统一用这个错误结构,可以直接修改APIM安装目录下<APIM_HOME>/repository/resources/policies/sequences/default里的_json_fault_.xml文件,改完重启服务就生效了

内容的提问来源于stack exchange,提问作者Tokyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:52:37