RESTFUL-风格完成后端接口开发
REST
REST风格 API接口开发
1. RESTful (核心思想===>表现层状态转换)
1.1 RESTful是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。
1.2 RESTful是目前最流行的一种互联网软件架构。
1.3 RESTful架构的核心原则:
▼text复制代码1- 以资源为中心,资源是指网络上的一个实体,或者说是网络上的一个具体信息。 - 每个资源对应一个特定的资源路径,即URI。 - 客户端和服务器之间,传递这种资源的某种表现层状态,即表现层状态转换。 以资源为基础 :资源可以是一个图片、音乐、一个XML格式、HTML格式或者JSON格式等网络上的一个实体, 除了一些二进制的资源外普通的文本资源更多以JSON为载体、面向用户的一组数据(通常从数据库中查询而得到)。 2- 统一接口:统一接口是RESTful架构的基础,只要是符合RESTful架构原则的,都可以称为RESTful接口。 - 统一接口包括:资源标识、资源操作、自描述消息、超媒体作为应用状态引擎。 - 对资源的操作包括获取、创建、修改和删除,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。 - GET(SELECT):从服务器取出资源(一项或多项)。 - POST(CREATE):在服务器新建一个资源。 - PUT(UPDATE):在服务器更新资源(客户端提供完整资源数据)。 - PATCH(UPDATE):在服务器更新资源(客户端提供需要修改的资源数据)。 - DELETE(DELETE):从服务器删除资源 - 通过统一接口,实现了客户端和服务器的分离,使得客户端不用关心服务器的技术实现,而服务器也不用关心客户端的业务逻辑。
传统API接口开发和RESTful API接口开发对比:
| 传统API接口开发 | RESTful API接口开发 |
|---|---|
| 以动作为中心 | 以资源为中心 |
| 以动词为中心 | 以名词为中心 |
| 以操作为中心 | 以数据为中心 |
| 以过程为中心 | 以结果为中心 |
| 以业务为中心 | 以实体为中心 |

2. RESTful URI设计
- 不用大写字母,所有单词使用英文且小写。
- 连字符用中杠"-"而不用下杠"_"
- 正确使用 "/"表示层级关系,URL的层级不要过深,并且越靠前的层级应该相对越稳定
- 结尾不要包含正斜杠分隔符"/"
- URL中不出现动词,用请求方式表示动作
- 资源表示用复数不要用单数
- 不要使用文件扩展名
- 用好HTTP状态码
3. RESTful 响应状态码
使用RESTful风格的API接口开发,一般需要返回响应状态码和响应数据, 响应状态码的使用非常重要,下面列举了常用的状态码:
▼text复制代码1. 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。 2. 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。 3. 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务) 4. 204 NO CONTENT - [DELETE]:用户删除数据成功。 5. 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。 6. 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。 7. 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。 8. 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。 9. 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。 10. 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 11. 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。 12. 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
4.日常开发使用
Restful 只是一种风格和规范,不是一种标准,不一定要让所有接口全部遵循,一般开发中混用.
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论

