RESTful API理解

RESTful API遵循REST架构规范,通过HTTP方法操作资源定位。其特点包括:资源定位、资源表述、状态转移、统一接口和超文本驱动。与RPC相比,RESTful API更注重规范和通用性,而RPC在效率和跨语言调用上有优势。

一、RESTful API是做什么的

REST是一套系统、严谨的架构,是一种理论框架,RESTful API遵循这种架构规范,用于服务端向客户端提供HTTP服务。

二、特点

1、资源
例如 :

https://editor.youkuaiyun.com/channing2626/blog/1

这个uri对应一个资源定位,即

/channing2626/blog/1

它不包含对资源的操作,如果写成

GET /channing2626/blog/1

这就是一个RESTful风格的API,即“统一的对资源的操作+无状态的资源定位”。对资源的操作GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS这些HTTP方法来定义。

2、资源的表述
这个资源定位实际是资源暴露出来的展现形式,是GET请求获取到的内容。

3、状态转移
此处的状态应该区分应用状态和资源状态,客户端负责维护应用状态,而服务端维护资源状态。

客户端与服务端的交互必须是无状态的,并在每一次请求中包含处理该请求所需的一切信息。

服务端不需要在请求间保留应用状态,只有在接受到实际请求的时候,服务端才会关注应用状态。

这种无状态通信原则,使得服务端和中介能够理解独立的请求和响应。

4、统一接口

  • 7个HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS

  • HTTP头信息(可自定义)

  • HTTP响应状态代码(可自定义)

  • 一套标准的内容协商机制(即接口内容输出之后,各个字段各个对象如何解析的定义)

  • 一套标准的缓存机制

  • 一套标准的客户端身份认证机制

5、超文本驱动
就像网页里的超链接,得到当前接口的返回内容,app 布局上对应的各个按钮下一步可能会请求 api 需要在当前 api 予以给出。类似于返回一个html网页,应包含下一步请求的url。

三、对比

RPC模型
RPC 更侧重于动作。
REST 的主体是资源。

RPC 效率更高。RPC,使用自定义的 TCP 协议,可以让请求报文体积更小,或者使用 HTTP2 协议,也可以很好的减少报文的体积,提高传输效率。

HTTP 相对更规范,更标准,更通用,无论哪种语言都支持 HTTP 协议。
RPC 可以实现跨语言调用,但整体灵活性不如 RESTful。

四、参考

REST的五个关键词
RESTful API 设计指南
菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值