1.前言:
REST是由Roy Fielding提出的一种软件架构,现如今也是因为REST模式的web服务与复杂的SOAP、XML-RPC对比来说,
更加简洁,越来越多的web服务开始采用REST风格设计和实现。
简单的说REST就是URL定位资源,用HTTP动词(get,post,delete,detc)描述操作,REST描述的是在网络中
C/S的一种交互形式,我们一般所说的,并不是指的它本身,它本身没有什么实用之处,而是如何设计
RESTful API,也就是如何设计REST风格的网络接口。
2.REST中的基本概念
- 在REST中的一切都被认为是一种资源,每个资源由url标识。
- 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应http协议提供的get、post、put、和delete方法
,也就是说使用统一的接口,而不像soap风格的服务那样,每个服务的名称都是不同的。 - 每个请求都是一个独立的请求,从客户端到服务器的每个请求都必须包含所有必要的信息,便于理解。
- 资源表现形式则是JSON,xml、或者HTML,取决于读者是机器还是人,是消费web服务的客户软件合适web
浏览器。当然也看可以是任何其他的格式。
3. REST架构风格的约束
最重要的约束包括如下6个方面
- C/S:通信只能由客户端单方面发起,表现为请求/响应的形式
- 无状态:通信的会话状态应该全部由客户端负责维护。
- 缓存:响应内容可以在通信链的某处被缓存,以改善网络效率。
- 统一接口:通信链的组件之间通过统一的接口互相通信,以提高交互的可见性。
- 分层系统:通过限制组建的行为(即每个组件只能“看到”与其交互的紧邻层),将架构分解为若干等级的层。
- 按需代码:支持通过下载并执行一些代码,对客户端的功能进行扩展。
4.REST风格的web服务
REST风格的web服务(也称为REST风格的web API)是一个使用http并遵循REST原则的web服务,他从以下三个方面进行定义:
- URI,例如:http://example.com/resources
- web服务接受与返回的互联网媒类型,例如:JSON、xml、yaml等
- web服务在该资源上所支持的一系列请求方法(例如POST、get、put、delete)
下面的表格列出了在实现REST风格的web服务时http请求方法的典型用途:
webgis从基础到开发实践。
网友评论