RESTFul API

88 阅读1分钟

representation state transfer Application Program Interface 表示性状态转移接口

API 设计规范

1、将一切数据视作资源

2、利用 HTTP 请求方式,描述对资源的操作(增/删/改/查)

3、通过 HTTP 响应状态码,描述对资源的操作结果(如: 200/5xx)

期望效果:

1、看 URL 知道是什么资源 (接口语义化)

2、看 Method 知道要对资源进行什么操作

3、看 Response Code 知道操作是否成功

Method 规范:用于描述操作(动词)

1、GET 用于读取资源

2、POST 用于创建资源

3、PUT 用于更新资源(客户端提供更新后的完整资源)

4、Patch 用于局部更新(客户端提供资源局部变量)

5、DELETE 用于删除资源

URL 规范:只使用名词,不能有动词

image.png

Response 规范: 需保持统一结构,code 对齐 HTTP 状态码

{
  code: //描述状态
  data: // 返回数据
  message: //状态描述
}

对所有接口的返回结构保持统一

RESTFul API 的好处:

1、有效降低沟通成本

2、前后端解耦更彻底

3、前端更多业务灵活性

现在已经不是ASP JSP的直出页面的时代,也不是单个服务器只服务于单个前端的时代,一套好的接口规范可以大幅降低前后端的沟通成本,其次后端可以更专注于维护一套通用的接口服务,前端更专注于业务,前后端分离的更加彻底;最后规范约束了接口具备更强的原子性,把更多的业务灵活性交回给前端

思考问题: 接口要升级如何处理?

遇到事务性业务逻辑要如何设计?