REST中的基础概念包括:
- 在REST中的一切都被认为是一种资源,每个资源由URI标识。
- 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,也就是说使用统一的接口,而不像SOAP风格的服务那样,每个服务的名称都是不同的。
- 每个请求都是一个独立的请求,从客户端到服务器的每个请求都必须包含所有必要的信息,便于理解。
- 资源的表现形式则是JSON(JavaScript Object Notation)、XML或者HTML,取决于读者是机器还是人,是消费Web服务的客户软件还是Web浏览器。当然也可以是任何其他的格式。
REST架构风格最重要的约束包括如下6方面:
- 客户/服务器:通信只能由客户端单方面发起,表现为请求/响应的形式。
- 无状态:通信的会话状态应该全部由客户端负责维护。
- 缓存:响应内容可以在通信链的某处被缓存,以改善网络效率。
- 统一接口:通信链的组件之间通过统一的接口相互通信,以提高交互的可见性。
- 分层系统:通过限制组件的行为(即每个组件只能“看到”与其交互的紧邻层),将架构分解为若干等级的层。
- 按需代码(可选):支持通过下载并执行一些代码(例如Java Applet、Flash或JavaScript)、对客户端的功能进行扩展。
REST风格的Web服务:
REST风格的Web服务(也称为REST风格的Web API)是一个使用HTTP并遵循REST原则的Web服务。它从以下三个方面进行定义:
- URI,一组资源的URI,例如:http:// example .com /resources/;单个资源的URI,例如:http:// example .com/resources/123。
- Web服务接受与返回的互联网媒体类型,例如:JSON、XML、YAML等。
- Web服务在该资源上所支持的一系列请求方法(例如POST、GET、PUT、DELETE)。