Restful内部使用。本想从阿里和腾讯的api找点规律,结果失望了。网上规范,有些地方并不认同。
命名规范
1.结尾不能是斜杠"/"
2.全部用小写字母;单词之间用中划线"-"分隔。
3.[acl]/v[1]/[模块]/[对象]/动作
3.1. acl可选,表示需要权限控制,否额不需要。
3.2. 版本号,默认v1
3.3. 模块,例如crm
3.4. 对象,例如客户custmoter
3.5. 动作save(保存);update(修改);delete(删除);get(查看明细);list(查询列表)
例如:
a. 查看用户
acl/v1/crm/customer/get/1
b. 修改用户
acl/v1/crm/customer/update
c.保存用户
acl/v1/crm/customer/update
d.删除用户
acl/v1/crm/customer/delete/1
c.用户列表
acl/v1/crm/customer/list
如果是针对唯一id的用户操作,id放到url上。如果
为什么不是
1.url中不能有动词?
HTTP有get、post等,但是从url上怎么看出来呢?
返回值
1.统一格式 。参考RestResult对象结构。
2.相应代码,也就是code
200 OK
400 bad request 常用在参数校验
401 unauthorized 未经验证的用户,常见于未登录。如果经过验证后依然没权限,应该 403(即 authentication 和 authorization 的区别)。
403 forbidden 无权限
404 not found 资源不存在
500 internal server error 非业务类异常
503 service unavaliable 由容器抛出,自己的代码不要抛这个异常
目前分歧在于成功的返回值,原来多用0表示成功,而有些同学用200做成成功。新项目用0表示,是字符串0。老项目保持不变。
安全设计
jwt
网友评论