咱们设计的REST API真的nice么?\
优雅型:api.exapmle.com/louvre/da-v…
卢浮宫/达芬奇/蒙娜丽莎
北京/二手频道/帖子ID
谢特型:api.example.com/68dd0-a9d3-…
不知道什么鬼
本文将分享URI设计的一些原则。
1. URI的末尾不要添加“/”
多一个斜杠,语义完全不同,究竟是目录,还是资源,还是不确定而多做一次301跳转?
负面case:api.canvas.com/shapes/
正面case:api.canvas.com/shapes
2. 使用“-”提高URI的可读性
目的是使得URI便于理解,用“-”来连接单词
正面case:api.example.com/blogs/my-fi…
3. 禁止在URL中使用“_”
目的是提高可读性,“_”可能被文本查看器中的下划线特效遮蔽
负面case:api.example.com/blogs/my_fi…
别争,看到效果就明白了
4. 禁止使用大写字母
RFC 3986中规定URI区分大小写,但别用大写字母来为难程序员了,既不美观,又麻烦
负面case:api.example.com/My-Folder/M…
正面case:api.example.com/my-folder/m…
5. 不要在URI中包含扩展名
应鼓励REST API客户端使用HTTP提供的格式选择机制Accept request header
正面case:58.com/bj/ershou/3…
一个case:58.com/bj/ershou/3…
6. 建议URI中的名称使用复数
额,楼主不知道为何会有这么奇怪的建议
正面case:api.college.com/students/32…
负面case:api.college.com/student/324…
最后,给后端研发工程师一个建议:清晰优雅的 RESTful API是为调用者编写的,别无脑随意定义一些shit一样的URI给移动/前端工程师使用,小心生命有危险。
原文:blog.restcase.com/7-rules-for…
作者:Guy Levin
你见过一些什么奇葩的URI?