Restful API简介
2020-06-18 本文已影响0人
BlueSkyBlue
REST是一种架构风格,Restful指的是基于REST实现的Web服务。它基于HTTP,通过标准的HTTP方法(GET, POST, PUT, DELETE)来返回数据。
为什么要使用Restful API:
- 分离前后端。Rest是独立于平台和语言的。
- 灵活,可扩展。
- 可适用于多种形式(XML, JSON etc)
- 建立在HTTP之上,可以使用HTTP的缓存。
- 很容易使用。
为什么我们要使用API:
如果有两个不同平台的网络,我们要在互相之间建立联系,这时就需要一种统一的交互方式,此时我们需要使用到API。
SOAP: Simple Object Access Protocol。可以用来创建WCF(Windows Communication Foundation),返回的是XML。Web服务只有SOAP服务。
Web API对应Restful services。Web Services对应SOAP services。
REST和SOAP对比:
- REST使用了标准的API,使得操作十分简单,创建客户端,开发API,文档更加的简单。
- REST支持更多的数据格式,SOAP只支持XML。
- REST有更好的性能和扩展性。REST的读取可以被缓存起来,而SOAP的读取无法被缓存。
REST的限制:
- Client-Server
- Statelessness
- Cache
- Uniform interface
- Layered system
- Code on demand
Client-Server
发起请求的实体称为Client,持有资源并响应请求的实体为Server。Client和Server是分离开来的,它们可以各自演化。
Statelessness
Server端不存储任何和Client端有关的信息,这也意味着所有信息都在请求中。
Cache
每一个响应都可以被缓存。对于之后的请求,客户端可以从缓存中检索,并把请求发给服务器。减少网络延迟。
Uniform interface
Uniform interface是区分Rest API和Non-Rest APIs的关键点。
Uniform interface有四要素:
- 唯一的确定资源(通过URL)。
- 通过表示的方式来操控资源。
- 每一个请求都有描述信息。
- HATEOS(Hyper Engine of the Engine of application State)
能够使所有的组件以同样的方式进行交互。
Layered system
REST架构是一层一层组成的,每一层都互相独立。这减轻了系统的复杂性,并增加了安全性。当一层收到攻击,不会影响其它层,但是也增加了网络的延迟。
Code on demand
服务端可以为客户端提供可运行的代码。这条特性减轻了可视性。