如果是设计公共API,你给其他人提供服务,那么老老实实按照规范来,
因为规范就是统一的认知,也不会给别人带来多少困扰。
但如果是自家产品,我的经验就是不要REST了, 所有请求统统POST
参数加密后放入 request body 中
http://wtser.com/2015/03/08/who-cares-about-get-vs-post-norest.html这篇文章 与我现在的观点一致。
除了文章中所说的,我再说几点好处:
1, 更方便的自动生成代码。
不用区分是GET,POST,DELETE 这些。客户端自动生成代码将极度简化。
2, 数据加密。
上面已经说了, 数据在 post body中,是加密的。
至少不去研究,直接抓包看不出什么。
3, 更方便的服务器安全控制。
自己的API都是POST,可能有一些与第三方厂商对接的接口是GET,
那么只要在nginx中 将第三方GET接口 设置为 可以GET访问
其他接口全部 要 POST 访问,非POST统统deny
4, 更明确的错误提示
客户端有一个输入框,输入其他用户ID (纯数字),可查看这个用户的信息
那么 REST API 就是 GET /userInfo/<ID>
URL ROUTE 配置应该是 <ID> 匹配纯数字 对不对? 这样才是明确的 REST API 啊
如果 用户输入有 汉字, 那么你返回 404呢?
还是返回200 但是 返回结果是这样的?
{
'ok': false,
'message': '用户ID只能是数字'
}
这个时候 客户端只要 判断返回的 ok 不为 true,直接弹框显示 message 即可。
总之我的经验就是全部POST,简单,方便,少写代码!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/177478
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.