咱们设计的REST API真的nic

e么?优雅型:http://api.exapmle.com/louvre...

卢浮宫/达芬奇/蒙娜丽莎

中庸型:http://58.com/bj/ershou/310976

北京/二手频道/帖子ID

谢特型:http://api.example.com/68dd0-...

不知道什么鬼

本文将分享URI设计的一些原则。

  • URI的末尾不要添加“/”

多一个斜杠,语义完全不同,究竟是目录,还是资源,还是不确定而多做一次301跳转?
负面case:http://api.canvas.com/shapes/
正面case:http://api.canvas.com/shapes

  • 使用“-”提高URI的可读性

目的是使得URI便于理解,用“-”来连接单词
正面case:http://api.example.com/blogs/...

  • 禁止在URL中使用“_”

目的是提高可读性,“_”可能被文本查看器中的下划线特效遮蔽
负面case:http://api.example.com/blogs/...
别争,看到效果就明白了

  • 禁止使用大写字母

===========

RFC 3986中规定URI区分大小写,但别用大写字母来为难程序员了,既不美观,又麻烦
负面case:http://api.example.com/My-Fol...
正面case:http://api.example.com/my-fol...

  • 不要在URI中包含扩展名

应鼓励REST API客户端使用HTTP提供的格式选择机制Accept request header
正面case:http://58.com/bj/ershou/310976
一个case:http://58.com/bj/ershou/31097...

  • 建议URI中的名称使用复数

-- bxg


码魇
485 声望15 粉丝