兄弟们,对于前后端联调中,对响应数据结构的定义,有没有最佳实践?

305 天前
 feeeff

目前根据我的工作经验,只能得到如下的三种情况,是否有改进空间呢?

1787 次点击
所在节点    程序员
11 条回复
Zhuzhuchenyan
305 天前
这个应该是没有所谓的“最佳实践的”,光业务错误是否使用 HTTP 状态码就分两种流派,剩下的细分实践可以吵的点就太多了。

个人感觉这套没什么大问题,完全可以作为开始慢慢迭代,我的话会在返回 4xx ,5xx 的时候把 code 变成-1

剩下的话要思考的可能就是怎么更好约束什么是业务错误,什么是服务错误,分页逻辑用的字段定义在哪里。
RightHand
305 天前
正常选上面,好沟通交流,如果有大佬把控全局选下边,下边可以精简数据
wunonglin
305 天前
wunonglin
305 天前
前端能够处理、区别正常请求和不正常请求,从而走不同的逻辑

https://developer.mozilla.org/en-US/docs/Web/API/Response/ok

从而解析是正常结构还是报错的结构
wunonglin
305 天前
同时,例如删除接口,提交接口,90%的场景不需要返回任何东西,只需要 http 200 即可,如有其他业务需求除外,这点请分清楚。
wunonglin
305 天前
zod 和 deepkit 等库能够解析返回的数据

1 、数据正常,那么使用库解析完后直接返回
2 、业务报错,使用库解析 body ,提示错误
3 、链路错误,使用库解析不了 body ,并且 catch 到了错误,那么提示网络错误
lilei2023
305 天前
我们现在用的和你的差不多,请求正常都是 200 ,业务错误放在 code
feeeff
305 天前
非常感谢各位老哥的回复
johnhuangemc2
305 天前
我们的策略是:
只要后端能够响应,HTTP 响应码都是 200 。
响应体中使用 code 表示是否成功,message 代表给用户显示的提示内容。
code 可以定义更细致的结构,例如错误类型、模块等,以便快速定位到具体出错的模块和错误类型。
flyqie
304 天前
个人觉得 http code 不应该掺杂业务状态。

这样能够非常快速的判断问题,并使得应用有更强的拓展性,因为 http code 给了 404 之后有些业务还得二次细分判断 app code
prosgtsr
304 天前
我们不管 http 状态码,都是 200

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1018946

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX