REST Web 服务基础
表述性状态传输( Representational State Transfer , REST )是一种用于创建分布式 Web 应用程序的模式。在设计 Web 服务 API 时,它会建立一组技术和最佳实践,用于公开基于服务器的资源并管理其状态。它使用主流协议和标准为部署和管理 ONTAP Select 集群提供了灵活的基础。
架构和传统限制
Roy Felding于2000年在加州大学尔湾分校的博士学位中正式阐述了REST "Dissertation"。它通过一组限制来定义架构模式,这些限制共同改进了基于 Web 的应用程序和底层协议。这些限制会根据使用无状态通信协议的客户端 / 服务器架构建立 RESTful Web 服务应用程序。
资源和状态表示
资源是基于 Web 的系统的基本组件。创建 REST Web 服务应用程序时,早期设计任务包括:
-
识别系统或基于服务器的资源每个系统使用和维护资源。资源可以是文件,业务事务,流程或管理实体。在设计基于 REST Web 服务的应用程序时,首先要完成的任务之一是识别资源。
-
资源状态和关联状态操作资源的定义始终处于数量有限的状态之一。必须明确定义状态以及用于影响状态更改的关联操作。
客户端和服务器之间会交换消息,以便根据通用 CRUD (创建,读取,更新和删除)模式访问和更改资源的状态。
URI 端点
必须使用定义明确的寻址方案定义和提供每个 REST 资源。资源所在的端点和标识的端点使用统一资源标识符( Uniform Resource Identifier , URI )。URI 提供了一个通用框架,用于为网络中的每个资源创建唯一名称。统一资源定位器( Uniform Resource Locator , URL )是一种用于 Web 服务的 URI 类型,用于标识和访问资源。资源通常以类似于文件目录的分层结构公开。
HTTP消息
超文本传输协议( HTTP )是 Web 服务客户端和服务器用来交换有关资源的请求和响应消息的协议。在设计 Web 服务应用程序时, HTTP 动词(例如 GET 和 POST )会映射到资源以及相应的状态管理操作。
HTTP 为无状态。因此,要在一个事务下关联一组相关请求和响应,追加信息 必须包含在请求 / 响应数据流附带的 HTTP 标头中。
JSON 格式化
虽然信息可以通过多种方式在客户端和服务器之间进行结构化和传输,但最常用的选项(以及 Deploy REST API 中使用的选项)是 JavaScript 对象表示法( JSON )。JSON 是一种行业标准,用于以纯文本形式表示简单数据结构,并用于传输描述资源的状态信息。