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接口开发
以动作为中心以资源为中心
以动词为中心以名词为中心
以操作为中心以数据为中心
以过程为中心以结果为中心
以业务为中心以实体为中心

image.png

2. RESTful URI设计

  1. 不用大写字母,所有单词使用英文且小写。
  2. 连字符用中杠"-"而不用下杠"_"
  3. 正确使用 "/"表示层级关系,URL的层级不要过深,并且越靠前的层级应该相对越稳定
  4. 结尾不要包含正斜杠分隔符"/"
  5. URL中不出现动词,用请求方式表示动作
  6. 资源表示用复数不要用单数
  7. 不要使用文件扩展名
  8. 用好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个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP