刚去一个公司,喷了一个没写过接口的后台开发人员,结果搞的自己也很 Lower 。喷的原因很简单,接口地址写错,参数写错,拖延整个项目进度,压缩自己的开发时间,随意更改字段名。 现在决心不说话,避免被说成是心态不好,大惊小怪。好无语。求安慰。
重要的不是能力,而是和谐的团队氛围,你认同这句话吗?
101
mhycy 2017-01-24 14:16:18 +08:00
@noli
1 、 API 监控报警只监控 200 以外的状态码即可判断 API 失效 2 、 API 的缓存从不应只依赖返回码 3 、 JSON 是一个很通用的实现,除嵌入式以外,暂时没想到哪个领域不具有解析 JSON 的能力。 (别忘了我坚持 200+JSON 的领域是 Web ,本来 Web 这种业务多变的地方就应该独立做一套 API ) 4 、一个非 200 响应的 API 给浏览器统一成 200 响应再送回去你确定这样做合适? |
102
noli 2017-01-24 14:28:06 +08:00
@mhycy
1. API 监控报警只监控 200 以外的状态码即可判断 API 失效 严格来说,你这个说法错漏很大,先不讨论细节。很多 API 监控报警机制都是依靠 HTTP 头的,很少会关心 Content 。你把所有的 error 塞进 content , Http Status 都是 200 了,那么是不是就没法监控了? 2. API 的缓存当然只能依赖返回码了,难道还要检查缓存的内容才能决定要不要缓存吗? 3. 嵌入式设备知道 HTTP 但不一定有 JSON 解析能力。问题是,还是我一开始就在本帖里面就说的那句,能用 400 500 就能表达的意思,为什么非要塞进 Status 为 200 的报文内容里面?你要塞进去我也不反对,但为啥又要把 status 硬要设为 200 ? 4. 这是针对你的思路,你说 200 + json 对于浏览器劫持有重要的豁免效果,虽然我觉得很 bullshit 但你非要这么做的话,我只是提供你一个不会以文害义的做法。最好肯定就不改 http status 啦。 |
103
mhycy 2017-01-24 14:41:32 +08:00
@noli
1 、只要 200 就意味着 API 可访问, 200 以外数值一律当成异常处理(例如程序错误会抛个 500 ) 2 、缓存可依据 HTTP 头信息判断,不仅仅是状态码 3|4 、重看一遍我的回复, 200+json 我认为很适合于 Web API ,啥时候我说不看场景强制用这种模式了? |
104
noli 2017-01-24 14:53:32 +08:00
@mhycy
1. 那是因为你没见过会扔 100 的服务器,你说 Http 100 算不算异常? 2. 你觉得为什么设计 HTTP 的时候要把 status 放到最前面? 因为只要知道是 400 就足够判断不需要缓存结果了。 你要知道,并不是所有 client 都会处理所有 HEADER 的,有些 client 支持 X 开头的 Header 有些不支持, 你指望全部节点都能理解 HEADER 真的很天真。 3. 如果你的 API 只服务于 Web , 那你干嘛要用 Restful 的形式呢? 大才小用,然后再根据自己的需求来说,大才这么做简直是浪费。 我觉得这很有意思。 |
106
robotdiy 2017-01-24 15:59:49 +08:00
无非是想说别人不知道 http 状态码,自己懂。
|
107
cod 2017-01-25 16:40:11 +08:00
这个贴的评论从思想层次掉到了技术层次,没人关注楼主的心情了,哈哈
|
108
botman 2017-01-25 19:52:08 +08:00 via Android
lz 刚进公司就开喷,最后又来一句重要的是和谐的团队氛围。。。瞬间感觉 lz 不仅有点 low 还有点虚伪。
|
109
jianghu521 2017-01-31 06:30:07 +08:00 via iPhone
公司一个 android 说返回 400 拿不到东西!说错误!然后扔给他一行代码!老实了!不说话了!
|