目前互联网上充斥着大量的关于RESTful API(为方便,下文中“RESTful API ”简写为“API”)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?API 格式如何?当开始写一个app的时候,特别是后端模型部分已经写完的时候,不得不殚精竭虑的设计和实现自己app的public API部分。因为一旦发布,对外发布的API将会很难改变。
问题1:
发送邮件/mail/1/send 使用POST /mail/send 使用POST
该怎么样命名URL呢
问题2
获取某个特定用户列表 /getVipUser /user/vip /getUserList?type=vip
该怎么样命名URL呢
问题3
使用驼峰还是蛇形呢,很纠结,都用过,有人说随便,但是就是纠结。
问题一:
换种思路。发送邮件能否把邮件当作一个资源,send操作相当于增加一个邮件。
mails 作为一个资源
POST /mails 新增一份邮件
问题二:
一种方式vip作为一个资源参考3楼。
另一种方式vip用户可以用作users的条件
GET /users?id_vip=1 OR /users?type=vip
问题三:
REST风格都是以资源为单位,都是名词。在一定程度上是不存在动词的。所以可以不用考虑命名格式。
驼峰还是蛇形,不管是url上的还是返回参数上的。约定规范团队遵守就好。
附:
Github API 蛇形
豆瓣 API 蛇形
微信相关 蛇形
微博 API 蛇形