前后端接口API需要注意的问题

接口规范

前后端分离,前后端之间使用 JSON 来交流,两个开发团队之间使用 API 作为契约进行交互。
前后端分离的核心:后台提供数据,前端负责显示。

前提

REST A[I 统一约束客户端和服务器之间的接口。简化和分离系统架构,使每隔模块独立。

  • 请求中使用 URI 定位资源
  • 用 HTTP Verbs[动词] (GET、POST、PUT、DELETE)描述操作(具体表现形式)
  • 数据传递默认采用:Content-Type:application/json;charset = utf-8

统一接口

约束定义客户端和服务器之间的接口,简化分离的结构,使各部分独立发展。

无状态

REST 要求状态要么放入资源状态中,要么保存在客户端上。(服务器端不能保持除了单次请求之外的任何与其通信的客户端的通信状态)
从客户端的每个请求要包含服务器所需要的所有信息。

缓存

服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求。

客户–服务器

客户端无需关注数据存储,服务器端无需关注用户界面

分层系统

客户端不关心直接连接到最终服务器还是连接到中心服务器。中间服务器可以通过启用负载平衡和提供共享缓存来提高系统可扩展性。分层系统也可以执行安全策略。

支持按需代码

服务器可以通过传输逻辑来临时扩展或定制客户端的功能。

URL规范

GET https//domaiin.com/api/{模块名}/{?菜单名}/{接口名}/:param

  • 不能使用大写,用中横线- 不用下划线_;
  • 使用名词表示资源集合,使用复数形式(为确保所有 API URIs 保持一致),不能使用动词;
  • 每个资源都至少有一个标识它的 URI,同时应该遵循一个可预测的层次结构来提高可理解性,从而提高可用性;
  • 无需再 URI 中增加版本号,通过 HTTP 请求头信息的字段中进行区分(或者在 URI 包含主版本信息,同时请求头包含子版本信息)
    前后端接口API需要注意的问题

Ruquest

  • GET (select) 获取资源,不允许对服务器上任何资源做任何修改操作
  • POST (create)创建资源,创建成功通常返回201
  • PUT (update) 更新资源,通过请求体携带资源发送给服务器
  • DELETE (delete)删除资源
    查询字段内容过多,统一使用 post 方法查询,请求地址增加/query加以区分
    批量删除统一使用post,请求地址增加/delete加以区分

Respone 状态码

  • 200:OK 服务器成功返回请求的数据
  • 201:新建或修改数据成功
  • 202:表示一个请求已经进入后台排队
  • 204:删除数据成功
  • 400:请求有错误,服务器没有进行新建或修改数据的操作
  • 401:没有权限(令牌、用户名、密码错误)
  • 403:得到授权(与401错误相对),但是访问是被禁止的
  • 404:请求记录不存在,服务器没有进行操作
  • 406:请求的格式不符合(比如用户请求 JSON 格式,但是只有 XML 格式)
  • 500:服务器发生错误,无法判断发出的请求是否成功

格式

前后端交互字段全部使用小驼峰方式