前言
- 这是个人摸索并参考前人经验而总结出来的
- API命名的规范是简洁,可读,合理
- 所以本篇是经验分享,欢迎参考
统一的命名公式
{role?}/object/{id?}/{attribute?}/{action?}
规范
- 以单词命名
Role
- 可选
- 代表当前可访问的角色
- 身份不符返回401
例子:
用户A的身份是admin, 用户B的身份是user
URL | 用户 | 可访问 |
---|---|---|
admin/products | A | yes |
admin/products | B | no |
user/dashboard | A | yes |
user/dashboard | B | yes |
身份可以是多重的, 作为admin, 也有修改查看个人资料的权限
Object
- 必填
- 命名复数如果显示或修改多个同类数据, 如 categories
- 命名单数如果现实或修改单条数据, 如 category
- 可以是物体(object), 或类(class)名
Id
- 值取于数据的primary key 或 unique key
- 物体是复数的形式下略过
- 物体是单数的形式下可选
Attribute
- 可选
- 物体或类的属性
- 在显示或修改某类的所有属性时可以略过
例子
- admin/category/5/active/update
以admin的权限, 修改category的active属性 - admin/category/5/update
以admin的权限, 修改category的所有属性
Action
- 可选
- 对数据的操作, 一般以动词命名
- 读操作可以省略不写
操作 | 解释 |
---|---|
new | 用于访问添加新数据的表单 |
create | 将数据加入数据库 |
edit | 用于访问修改指定数据的表单 |
update | 修改指定数据 |
delete | 删除数据 |