设计 API 接口返回的 JSON 数据格式有没有比较流行的最佳实践?
最近我们公司开发一个项目, PC 端 手机 APP 端 手机网页端 设计 API 接口返回的 JSON 数据格式有没有比较流行的最佳实践?
目前找了以下几种版本
版本 1 : 成功执行: head Status Code:2XX
json {"id":51,"age":58,"name":"lifei"}
失败执行 head Status Code:4XX-5XX {"message":"xxxxxx 错误","errors:{}}
版本 2 : 成功和失败执行 head Status Code:2xx
json {"code":"0","message:"信息","data":{}}
版本 3: 成功执行: head Status Code:2XX
json {"id":51,"age":58,"name":"lifei"}
失败执行 head Status Code:4XX-5XX {"code":10001, "message":"xxxxxx 错误","errors:{}}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(16)
约定妥了以后就可以压缩点关键字,一个字符表示状态
rest风格是看起来不错,但是业务上的东西,跟http状态混到一块儿就有点怪了。
而且前端要有好多东西来判断:
创建个东西 201状态,空内容。
找不到东西 404 空内容。。
找到东西 是对象的 json
内部错误 500 丢一个另外一个结构的json。。。
还不如一套结构下来,用一个字段标识状态,统一一点
rest风格的话用版本1。实际上我觉得rest并不好,用版本2吧,不把http错误跟业务错误混在一起。
410 401 400 422 416
还是采用第一个方案吧,比如404 一看就知道资源未找到。
那为什么回答了?
随便看看都不想回答了。
JSON
webservice返回的是JSON还是XML?
楼上几个都用版本2呢
@eechen的粉丝 确实国内很多所谓的rest api都不是真正的api,很多都没把我住rest的真正含义。
如果业务不同的错误类型,比如我要提现操作,可能会出现银行卡未绑定、没有上传户口本,没有上传身份证,没有绑定手机号码,没有填写住址等错误,没有余额等等用什么状态码
不建议版本2,REST API中有一条就是用已知的HTTP请求错误码来区分错误,比如客户端请求一个不存在的对象,就用404表示错误。个人推荐第一种。
版本2 比较不错 公司也在使用
引用来自“卖萌的程序猿”的评论
个人推荐版本2,程序级别的错误就应该程序级别来处理和对接,head code的错误用于系统级别,比如404、500等
个人推荐版本2,程序级别的错误就应该程序级别来处理和对接,head code的错误用于系统级别,比如404、500等