又被内部 API 给坑了!

2015-03-09 16:05:55 +08:00
 kxxoling

调用后台错误的时候遇到一个 403 问题,但是由于返回头是 200,一直隐藏在了数十个 CSS、JS 文件当中!(不要问我为什么说又……

API 提供正确的 HTTP 头不是基本要求吗?

5357 次点击
所在节点    Python
25 条回复
kslr
2015-03-09 16:10:38 +08:00
restful api, http api
learnshare
2015-03-09 16:29:17 +08:00
写 API 的兴许状态码都不懂,就知道 200
airyland
2015-03-09 16:34:40 +08:00
顺便吐槽一下,很多统计服务或者广告联盟的MIME Type都是不正确的。吐槽已久,问能不能改一下,回:腾讯它们不也是这样返回的?
halfcrazy
2015-03-09 16:35:54 +08:00
记得好像可以API始终返回200,然后把真正的状态码放到返回值里面
scys
2015-03-09 17:16:49 +08:00
@learnshare 我一般写API都是默认返回200,如果是系统错误,就返回50x,如果没有API就返回40x
业务逻辑 返回值 和HTTP ERROR CODE没有直接关系
otakustay
2015-03-09 17:26:53 +08:00
你见过非200响应要扣KPI的公司吗,反正我是见过
pi1ot
2015-03-09 17:29:03 +08:00
之前听前端工程师说有些浏览器在非200返回时拿不到AJAX调用的response
awanabe
2015-03-09 17:29:43 +08:00
API的HTTP头表明的是api是否可用, 不代表执行正确.
blacktulip
2015-03-09 17:30:56 +08:00
「调用后台错误的时候遇到一个 403 问题,但是由于返回头是 200,一直隐藏在了数十个 CSS、JS 文件当中!(不要问我为什么说又……」
楼主你前面没有说又
blacktulip
2015-03-09 17:34:01 +08:00
好吧找到了,又在题目里。楼主应该写个小 helper ,出问题就把 response 过一次,不要用眼睛去找
kernel1983
2015-03-09 17:34:46 +08:00
论全桟的重要性
tabris17
2015-03-09 17:37:30 +08:00
@scys 调用参数错误返回4XX没问题
zhicheng
2015-03-09 17:45:11 +08:00
那些不遵守 HTTP 规范的,有考虑过写 Client 的人的感受吗?HTTP 的状态码就是给 HTTP 之上的业务使用的,要不然根本就不需要设计这个东西。
learnshare
2015-03-09 17:45:31 +08:00
HTTP 状态码有它的具体含义,代表特定状态,跟语言、数据库、前后端没关系,更跟 KPI 没关系。
Viztor
2015-03-09 17:46:47 +08:00
Some environments (like in-browser Javascript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.

--Wordpress API Docs
jarlyyn
2015-03-09 17:49:07 +08:00
为什么api请求会返回403......
既然你有了相应的返回值,那么不就是正确响应,应该是200么?
就算返回403,难道你不去分析返回的body了么?
155
2015-03-09 17:49:17 +08:00
部分ISP会劫持非200请求, 剩下的连200都劫.
dongin
2015-03-09 17:50:10 +08:00
有一种坑叫我以为
jarlyyn
2015-03-09 17:56:07 +08:00
200,301,500这种 状态是http链接本身的状态,应该是记录在服务器日志里,给运维看的。由客户端自动处理的,和缓存状态有关。是容器的状态。

业务的逻辑是返回的数据,我觉得并在一起才不符合我的审美。
sophymax
2015-03-09 17:59:30 +08:00
自己的接口为了减少被人乱分析的概率 , 成功的不成功的全部返回404 , 要是在公司这么干不知道领导会不会让我收拾东西走人

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

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

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

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

© 2021 V2EX