`
iwebcode
  • 浏览: 2009971 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

REST介绍

 
阅读更多

什么是REST?

  REST是Roy Fielding在他的博士论文中提出的词汇,是对网络系统构架的一个描述。REST是表现性状态传输首字母缩写(Representational State Transfer)。

Roy Feilding这么解释表现性状态传输的意义:

引用 “表现性状态传输试图描述一个设计优良的Web是如何运转的:用户在web网络(虚拟状态机)里通过点击链接处理应用(状态传输),结果就是传输并渲染下一个页面给用户(应用程序的下一个状态的表现性)。“

REST的目的

  REST的目的是寻找让Web如此成功的特性。然后再使用这些特性指导Web变革。

REST是一个结构设计,而不是一个标准

  REST不是一个标准,你永远也不会看到W3C发布REST白皮书。你也不会看到微软或者IBM销售REST开发工具。为什么?REST它仅仅是一个结构设计而不是一个标准。你不能控制这个设计,你仅能够理解并且应用在你的Web服务中。(类似的C/S结构也是一种结构设计,而不是一个C/S标准)。

虽然REST不是一个标准,但它确实使用标准:

HTTP

URL

XML/HTML/GIF/JPEG等等(状态表现)

text/xml, text/html, image/gif, image/jpeg等等(MIME类型)

经典的REST系统

  Web就是REST系统,有很多你使用了很多年的服务就是基于REST的Web服务,例如:订书服务、搜索服务、在线电子字典。

  REST是关于Web的一张“大蓝图”,它不负责处理具体的执行细节(例如:使用Java还是CGI来实现一个Web服务)。所以让我们用REST“大蓝图”的观点来设计一个Web服务。

REST Web服务的特征

C/S结构:一个完全基于交互的设计

无状态:每个发送给服务器的信息必须包含服务器处理所需的所有信息,不能通过在服务器保存相关信息而获益。

缓存:为了提供网络的效率,响应必须标志出是否可以缓存。

统一的接口:所有的资源都可以通过一个通用的接口访问(例如:HTTP GET、POST、PUT、DELETE)。

命名的资源:组成系统的资源使用URL来命名。

互联资源表现性:资源的表现性通过URL实现互联,因此客户可以一个状态接着一个状态处理。

组件层:可以在客户和资源间插入用于提高效率,增强安全的的中间件,象代理服务、缓存服务、网关等。

REST Web服务设计原则

1.以REST网络建立Web服务的关键(例如Web)是确定想作为服务展现的所有概念化的实体。

2.为每个资源提供URL。资源应该是名词,不是动词

3.根据客户处理资源的方式分类,可以分为客户仅接收资源的表现性,客户能够修改(增加)资源。对于前者,提供HTTP GET方法访问。对于后者,提供HTTP POST、PUT和(或)DELETE。

4.所有通过HTTP GET访问的资源应该是无副作用的,也就是说,这些资源仅仅向客户返回一个资源的表现性,客户调用他们不应该对它们产生影响。

5.没有孤立的人,同样,没有孤立的表现性。换言之,在资源的表现性中提供链接,让客户能更深入的获取更多的信息,或者相关信息。

6.逐步的提供数据,不应该在一个文档里提供所有的内容,可以为更详细的信息提供链接。

7.使用模式(DTD、W3C Schema、RelaxNG或者Schematron)指定响应数据的格式。如果服务需要POST或PUT,也同样使用一个模式规定这些响应。

8.通过WSDL文档或者HTML页面描述如何调用你的服务。

分享到:
评论

相关推荐

    REST服务开发实战

    REST介绍  如果要说什么是REST的话,那最好先从Web(万维网)说起。  什么是Web呢?读者可以查看维基百科的词条,具体的我就不多说了。总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web...

    REST介绍文档

    Jaxrs基本概念、基础知识介绍,Redhat PPT文档

    rest基础实例开发

    这里详细介绍了rest开发所需jar包,以及基本流程。还有对代码的介绍,可以看看!

    REST API.md

    REST API的开发框架介绍:JSR-311,REST Web Services框架 JAX-RS,java接口;### REST Web Application多层框架 REST 应用场景,适合和不适合什么 基于HTTP的REST, 介绍资源uri,传输格式,对资源的操作(GET、...

    SOA与REST 用REST构建企业级SOA解决方案

     《SOA与REST:用REST构建企业级SOA解决方案》深入介绍了SOA与REST的原理、术语及特性;深入阐述了二者之间的差异及合作点;重点阐述了如何将REST作为媒介来实现SOA的战略目标,通过对REST服务的建模流程和专为REST...

    REST特点介绍

    REST是一种典型的Client-Server架构 无 状态 缓存 统一的接口 分层结构 多重表述

    rest风格webservice框架

    RESTLET介绍 Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务。 Restlet项目受到Servlet API、JSP(Java Server Pages...

    REST详细介绍

    REST的介绍,来源,限制条件,约束规则等方面的分析和学习。

    gerrit-rest-java-client, Gerrit代码审查的Java REST客户端.zip

    gerrit-rest-java-client, Gerrit代码审查的Java REST客户端 gerrit-rest-java-client 简介Gerrit代码审查工具 REST API的Java实现。仅支持 Gerrit 2.6或者更新版本的( 。旧版本中缺少/不完整的REST API ) 。

    REST_cn 中文版

    然后我介绍了表述性状态转移(Representational State Transfer,REST)的架构风格,并且描述了如何使用REST来指导现代Web架构的设计和开发。 REST强调组件交互的可伸缩性、接口的通用性、组件的独立部署、以及用来...

    REST in practice,英文

    介绍REST实践的书,很不错,有助于理解REST。

    Django-REST-framework教程中文版

    django接口开发教程。主要介绍如何通过Django-Rest-Framework快速创建REST风格的API。帮助快速进行django接口开发

    flowable_rest_api接口详细介绍

    切记不要自动换行! 全是我自己对它的理解和查看源码来进行中文注解的,如果注解有错请联系我进行修改。

    REST Server in Delphi XE Using DataSnap中文版

    对于初次接触DATASNAP并尝试使用其REST方式开发WEB或多层服务器架构的人员对相关概念的正确认知极有帮助,同时也包含部分对DELPHI中使用JSON的方式有清晰的介绍

    快意编程 EXT JS Web开发技术详解.pdf

    第14章 REST介绍 246 第15章 封装Ext JS提高开发速度 262 第三篇 AJAX整合实践 第16章 Ext3+REST+Spring2+ Hibernate3整合方案 326 第17章 工时统计管理系统 392 本站提供的快意编程 EXT JS Web开发技术详解 PDF版...

    youtrack-rest-php:JetBrains YouTrack REST API PHP 客户端

    PHP YouTrack REST介绍YouTrack REST API PHP 客户端使用与连接。 。内容安装用法更改日志贡献测试安全贡献者备择方案执照关于 Cyber​​Cog 特征框架不可知。 使用合约保持高定制能力。 多种授权策略:Token、...

    REST结构全面解析手册

    REST (Representational State Transfer)是代表状态传输的缩写。它代表了分布式超媒体系统的体系结构风格,该风格是Roy Field在他的论文中定义的。它是一种针对网络应用的设计和开发方式...本手册将为您做出详细介绍。

    Django restframework课件笔记详解

    Django restframework课件笔记详解,对Django restframework各功能模块的介绍以及真实案例分析。

    django rest framework vue 实现用户登录详解

    主要介绍了django rest framework vue 实现用户登录详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics