还能不能好好的写 API 了

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

我是写 API 的

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

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

这可如何是好啊!!!

14368 次点击
所在节点    程序员
125 条回复
jianghu521
2016-11-17 17:50:13 +08:00
@abelyao 删除成功返回 204
abelyao
2016-11-17 17:50:37 +08:00
@jianghu521 不存在的资源
hanfeng3015
2016-11-17 17:51:07 +08:00
我觉得 http status 都返回 200, 也没什么问题啊, 说明网络是正常的,这样可以自己定义 code 来表示请求的数据的状态,可扩展性比较好,可以针对每类请求实体定义状态码。。。
jianghu521
2016-11-17 17:51:33 +08:00
@abelyao 不存在返回 404 代表资源不存在
Zzzzzzzzz
2016-11-17 17:52:22 +08:00
不走 ssl 的话你领导说的对
falcon05
2016-11-17 17:52:50 +08:00
返回 200 也可以理解,国内有些运营商或者浏览器会劫持非 200 响应
jianghu521
2016-11-17 17:53:04 +08:00
@Zzzzzzzzz 使用 https
abelyao
2016-11-17 17:56:51 +08:00
@jianghu521
那就不好区分是请求地址不存在,还是要操作的资源不存在咯。
就随便举个例子,代表我个人的想法,不想上纲上线的讨论什么才是唯一的正确答案,毕竟这也跑题了
just13
2016-11-17 18:00:28 +08:00
xdazz
2016-11-17 18:03:03 +08:00
@hanfeng3015 都能返回 http status 了,说明网络肯定是正常的,网断了你都拿不到响应。

具体怎么做,没独挡一面的实力下就听领导的。
rogerchen
2016-11-17 18:04:34 +08:00
程序员搞原教旨主义是没有钱途的
allenshi
2016-11-17 18:05:16 +08:00
我做的项目都是返回 200 , 业务状态另外定义返回的 code 。
jianghu521
2016-11-17 18:06:38 +08:00
@xdazz 和领导讲了很多, 但是不听啊. 没有办法了。
ty89
2016-11-17 18:06:38 +08:00
你们领导说都返回 200 是有原因的
考虑到我国国情,很多路由器是会拦截一些状态码的,比如某米路由器,所以全部返回 200 ,通过返回数据包中的字段来区分,没毛病。

另外,标准这东西,尽可能去遵循就行了,没必要那么死板。
learnshare
2016-11-17 18:06:50 +08:00
没有话语权就忍着,忍不住就撂挑子
odirus
2016-11-17 18:07:08 +08:00
各有各的好处,程序就是用来解决问题的,生搬硬套某种标准,有些时候真的很难做

同上面,我见过不止一个客户端程序员把业务逻辑放在 http success 回调函数里面,也就是说 HTTP status code = 200 的情况下才会处理业务逻辑。
huanglexus
2016-11-17 18:11:19 +08:00
你是不是没有遵循公司的 api 设计规范而自己强行套用所谓的 REST 标准?
knightlhs
2016-11-17 18:11:21 +08:00
考虑国内的网络环境 这个不是啥大问题 非 200 的被劫持很严重
jianghu521
2016-11-17 18:18:04 +08:00
@ty89 谢谢
jianghu521
2016-11-17 18:19:19 +08:00
@huanglexus 一直是规范的. 这么换了领导. 要重构嘛!

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

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

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

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

© 2021 V2EX