Closed jwcjf closed 1 year ago
@jwcjf 不管是前端还是后端,拿到返回 Response JSON 后想改成啥样都行,可以参考这个用户的文章: 使用APIJSON写低代码Crud接口 https://blog.csdn.net/weixin_42375862/article/details/121654264
当然他的方式明显影响性能,而且需要对所有万能通用 API 调整(最多 8 个:/get, /head, /post, /put, /delete, /gets, /heads, /crud)。
其实直接 DemoParser 重写 parseResponse 来调整更好一些,只需要调整一处就行了,对性能影响很小可以忽略,大概这样:
@Override
public JSONObject parseResponse(JSONObject request) {
JSONObject res = super.parseResponse(request);
if (res.getIntValue(JSONResponse.KEY_CODE) == JSONResponse.CODE_SUCCESS) { // 或 JSONResponse.isSuccess(res.getIntValue(JSONResponse.KEY_CODE))
res.put(JSONResponse.KEY_CODE, 0);
}
return res;
}
我脱离 IDE 直接手写的,可能有错误要调整下。
不过一般不建议改,因为 APIAuto, UnitAuto 等生态周边工具都是依赖这些通用的状态码(和 HTTP Status 一致), https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONResponse.java#L40-L53
如果改了状态码,用到的生态周边工具也得跟着调整。 https://github.com/Tencent/APIJSON#%E7%94%9F%E6%80%81%E9%A1%B9%E7%9B%AE
不过倒也可以对业务项目返回 code: 0,对 APIAuto 等生态项目仍然返回 code: 200, 不管是同一个后端通过前端传参区分项目,还是为不同项目部署不同的 APIJSON 后端,都是可行的。
增加一个 status/statusCode/errCode/errorCode 等命名的字段表示状态码/错误码更好,可以很好地兼容生态项目 https://github.com/Tencent/APIJSON/issues/611
Description
code:200 改成 code:0