一、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 更侧重于动作。
REST 的主体是资源。
RPC 效率更高。RPC,使用自定义的 TCP 协议,可以让请求报文体积更小,或者使用 HTTP2 协议,也可以很好的减少报文的体积,提高传输效率。
HTTP 相对更规范,更标准,更通用,无论哪种语言都支持 HTTP 协议。
RPC 可以实现跨语言调用,但整体灵活性不如 RESTful。

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

被折叠的 条评论
为什么被折叠?



