如何设计优雅的RESTful接口?应该注意哪些问题

89 阅读2分钟

1.Restful简单介绍

REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的,定名为REST,即Representational State Transfer的缩写,翻译成中文:表述层状态转移。
什么是RESTful架构?
1.每一个URI代表一种资源;
2.客户端和服务器之间,传递这种资源的某种表现层;
3.客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"

2.如何设计RESTful接口的URL?

基本原则:
2.1.含义清楚
2.2.作用明确并且单一                         解释:应当遵守设计模式的职责单一原则
2.3.url中所有单词全部小写(强制)
2.4.url中所有单词都是名词,不能包含动词(推荐)   解释:因为根据上面RESTful的介绍,RESTful代表一种资源,资源本身就是名词。
2.5.url层级不能太深,最多不超过3层
2.6.入参和出参遵循公司统一的规范(强制)
2.7.controller层不做任何业务逻辑,业务逻辑全部放在biz层
2.8.接口定义文档与实现,必须保持统一
2.9.接口定义出来,一般不允许修改               解释:应该遵守设计模式中的开闭原则
URL定义示例:
GET   /users                显示所有用户列表的页面
GET   /users/{id}           显示用户个人信息的页面
POST  /users                创建用户
GET   /users/{id}/edit      编辑用户个人资料的页面
PATCH /users/{id}           更新用户
DELETE/users/{id}           删除用户

3.如何设计Restful接口的入参

接口的入参应该遵守以下规则:
3.1.字段定义必须跟实现中的入参类保持高度一致            解释:入参名称一致,入参个数一致,入参类型一致
3.2.在修改老接口的时候,一定不能删除接口的入参,如果要增加新的入参,那么这个入参一定是非必填的
3.3.入参不应该包含主键,以及按照一定规则生成的数字序列    解释:防止数据泄漏
3.4.入参如果定义成必填,那么代码实现必须进行非空校验

4.如何设计RESTful接口的出参

接口的出参应该遵守以下规则:
4.1.字段应当跟实现中的出参一致(强制)                  解释:出参类复用
4.2.在修改老接口的时候,一定不能删除原有的出参
4.3.出参不应该包含主键,以及按照一定规则生成的数字序列     解释:防止数据泄漏
4.4.出参应当有一定的说明                              解释:防止别人看不懂,例如:1,男 2,女 3,未知    

总结:

一个优秀的RESTful接口,并不是想象的那么简单。我们应当深刻理解RESTful这种架构的核心,只有这样才能定义好,实现好优秀的接口。