RESTful API 风格

什么是 RESTful API 风格

一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

为什么要用 RESTful API 风格

适用于前后端分离,后端组专注于业务功能的开发,提高开发效率。
近年随着移动互联网的发展,各种类型的客户端层出不穷,Restful可以通过一套统一的接口为PC、微信(H5)、IOS和Android提供服务,这样的接口不需要前端样式,只提供数据。其实就是,后端一套代码,适配所有的端。

如何设计 RESTful API

RestfulAPI就是由后台(SERVER端)来提供接口,前端来调用。前端调用API向后台发起HTTP请求,后台响应请求将处理结果反馈给前端。也就是说Restful是典型的基于HTTP的协议。

RESTful API 特征

Resource 资源

资源就是网络上的一个实体、一段文本、一张图片或者一首歌曲。资源总是要通过一种载体来反应它的内容。文本可以用TXT,也可以用HTML或者XML、图片可以用JPG格式或者PNG格式,JSON是现在最常用的资源表现形式。

统一接口

Restful风格的数据元操作CRUD(create,read,update,delete)分别对应HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT(PATCH)用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口。

PATCHPUT方法的区别?
PUT全部更新资源,举个栗子,user里面有idnameemail等字段,PUT更新资源,要求前端提供的一定是一个完整的资源对象,也就是整个user,如果前端缺少字段,那么缺了的字段会被清空。

PATCH是局部更新资源,后端仅更新接收到的字段。,比如 user现在只需更新name字段,那么后端只会更新username字段,前端传什么字段,后端只更新传过来的字段值。

补充一下,PATCH 与 PUT 属性上的一个重要区别还在于:PUT 是幂等的,而 PATCH 不是幂等的。

HTTP状态码

REST中都有特定的意义:200,201,202,204,400,401,403,500。比如401表示用户身份认证失败,403表示你验证身份通过了,但这个资源你不能操作。

无状态

所谓无状态即所有的资源都可以URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而变化。

Restful 是典型的基于HTTP的协议,HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。前面一次请求与后面一次请求没有必然的联系,所以是无状态的。

版本号

API的版本号放入URL。GET:http://www.choudalao.com/v1/article/123。或者将版本号放在HTTP头信息中,我个人觉得版本号能够较好的控制缓存问题,推荐放在HTTP头信息中。

过滤信息

如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。如limitpage等。

规范返回的数据

为了保障前后端的数据交互的顺畅,建议规范数据的返回,并采用固定的数据格式封装。

{
    "data":{
    },
    "msg":"uri_not_found",
    "code":10001,
    "request":"GET/v1/article/230"
}
方便测试

采用Restful风格的API可以方便测试,便于apizzswagger等构建文档。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值