还能不能好好的写 API 了

2016-11-17 17:24:03 +08:00
 jianghu521

我是写 API 的

写的好好的 REST API. 领导说要重构, 让所有的 HTTP Status 都返回 200. 这不是尴尬吗?

哎, 找了一堆国内的 API 作对比, 然后我扔给他 github 的 API 看. 但是没有起作用.

这可如何是好啊!!!

14409 次点击
所在节点    程序员
125 条回复
jianghu521
2016-11-17 18:21:28 +08:00
谢谢大家了🙏. 个人只是觉得既然有标准就要按照标准来. 大家都要进步, 成长的!
abelyao
2016-11-17 18:22:24 +08:00
@odirus C# / .net 的 HttpWebRequest 如果返回的不是 2xx 状态,直接抛出 WebException ,这时候就需要在网络异常中处理业务异常,蛋疼得要命
iyangyuan
2016-11-17 18:22:49 +08:00
HTTP 的状态码理解为[通信状态]
数据中的状态码理解为[业务状态]
darrenfang
2016-11-17 18:26:47 +08:00
@abelyao 所以都返回 200 ,在响应中的 code 字段写业务状态
abelyao
2016-11-17 18:28:17 +08:00
@darrenfang 是的…
owlsec
2016-11-17 18:46:22 +08:00
用 200 ,领导说啥就是啥,轮不到你说话。程序员就有一点不好就是「爱教育人」。(我也是这样)
jianghu521
2016-11-17 18:55:02 +08:00
@owlsec 没有教育他!😿😿
buru
2016-11-17 19:07:02 +08:00
我们公司用这种
版本 2 : 成功和失败执行 head Status Code:2xx

json {"code":"0","message:"信息","data":{}}
有什么问题吗?
nooper
2016-11-17 19:13:23 +08:00
swagger restapi standard
dantangfan
2016-11-17 19:14:37 +08:00
@iyangyuan 正解
forestyuan
2016-11-17 19:15:55 +08:00
我想 Restful API 的规则肯定没有考虑到非 200 被劫持的问题,当然了这个是天朝特色。
laoyuan
2016-11-17 19:16:29 +08:00
资瓷 200 ,解一个 json 就行了,如果得到的不是 json ,再看 http status 是不是服务出问题了
heimeil
2016-11-17 19:21:44 +08:00
@xgfan 想想还真是会有这种情况,学到了。
z3897421
2016-11-17 19:23:39 +08:00
一定是因为 200 是绿色的 对不对~
ck65
2016-11-17 19:29:53 +08:00
刚被改成全 200 。没办法。
用户水平参差不齐,有的这辈子还不知道有 status code 这说,有的是不会实现解析或嫌麻烦。
反正多数项目都是一棒子的买卖,坚持标准的人获得了事实上的孤独。
Adia
2016-11-17 19:32:12 +08:00
666 ,这是最气的
jianghu521
2016-11-17 19:35:12 +08:00
@ck65 是的 说的太对了!一开始 android 不会拿到 error 的信息!直接扔给他 http.getErrorStream()!拿到了错误的 json 数据!
xinyewdz
2016-11-17 19:36:43 +08:00
我一般使用业务状态码, http 200
romisanic
2016-11-17 19:45:17 +08:00
如果是业务状态码,个人支持全部返回 200 ,然后通过 data 中字段来判断做后续逻辑
romisanic
2016-11-17 19:49:27 +08:00
@iyangyuan 支持。同时感觉把通信状态跟业务状态混在一块也是够蛋疼的

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

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

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

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

© 2021 V2EX