`
elaine0111
  • 浏览: 95608 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

REST API学习(转载)

 
阅读更多
REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式。获得这些表徵致使这些应用程序转变了其状态。随着不断获取资源的表示方式,客户端应用不断地在转变着其状态,所谓表述性状态转移(Representational State Transfer)。

这一观点不是凭空臆造的,而是通过观察当前Web互联网的运作方式而抽象出来的。Roy Fielding 认为,

“设计良好的网络应用表现为一系列的网页,这些网页可以看作的虚拟的状态机,用户选择这些链接导致下一网页传输到用户端展现给使用的人,而这正代表了状态的转变。”

REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML以及HTML这些现有的广泛流行的协议和标准。

•资源是由URI来指定。
•对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
•通过操作资源的表现形式来操作资源。
•资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。
REST的要求
•客户端和服务器结构
•连接协议具有无状态性
•能够利用Cache机制增进性能
•层次化的系统
•隨需代碼 - Javascript (可選)


RESTful Web 服务
RESTful Web 服务(也称为 RESTful Web API)是一个使用HTTP并遵循REST原则的Web服务。它从以下三个方面资源进行定义:URI,比如:http://example.com/resources/。

§ Web服务接受与返回的互联网媒体类型,比如:JSON,XML ,YAML 等。

§ Web服务在该资源上所支持的一系列请求方法(比如:POST,GET,PUT或DELETE)。

该表列出了在实现RESTful Web 服务时HTTP请求方法的典型用途。

HTTP 请求方法在RESTful Web 服务中的典型应用


资源
GET
PUT
POST
DELETE

一组资源的URI,比如http://example.com/resources/
列出 URI,以及该资源组中每个资源的详细信息(后者可选)。
使用给定的一组资源替换当前整组资源。
在本组资源中创建/追加一个新的资源。 该操作往往返回新资源的URL。
删除 整组资源。

单个资源的URI,比如http://example.com/resources/142
获取 指定的资源的详细信息,格式可以自选一个合适的网络媒体类型(比如:XML、JSON等)
替换/创建 指定的资源。并将其追加到相应的资源组中。
把指定的资源当做一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源。
删除 指定的元素。



PUT 和 DELETE 方法是幂等方法。GET方法是安全方法 (不会对服务器端有修改,因此也是幂等的)。

不像基于SOAP的Web服务,RESTful Web服务并没有的“正式”标准。 这是因为REST是一种架构,而SOAP只是一个协议。虽然REST不是一个标准,但在实现RESTful Web服务时可以使用其他各种标准(比如HTTP,URL,XML,PNG等)。

REST的优点

•可以利用缓存Cache来提高响应速度
•通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性
•浏览器即可作为客户端,简化软件需求
•相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小
•不需要额外的资源发现机制
•在软件技术演进中的长期的兼容性更好
分享到:
评论

相关推荐

    arcgis server rest api

    ArcGIS Server REST API离线文档是开发者的重要参考资料,尤其在没有网络连接的情况下,可以方便地查阅和学习API的详细信息,提高开发效率。 总结,ArcGIS Server REST API是GIS开发的核心工具之一,理解并熟练...

    OpenDaylight REST API研究

    OpenDaylight REST API 研究 OpenDaylight REST API 是一个基于 Representational State of Resource (REST) 架构风格的应用程序接口,提供了一种统一的方式来与 OpenDaylight 控制器交互。 OpenDaylight REST API ...

    WordPress插件:给REST API 新增文章特色图片(缩略图)字段,用于显示文章头图

    - **RESTAPI**:理解RESTful概念和如何在WordPress中使用REST API是非常重要的,包括了解其结构、端点和数据格式。 通过创建这样一个插件,我们能够使REST API更好地服务于现代Web开发的需求,为那些依赖API获取...

    Python库 | plone.restapi-7.5.0.tar.gz

    标题中的“plone.restapi-7.5.0.tar.gz”是一个开源软件包,它基于Python编程语言,专为Plone内容管理系统设计。Plone是一个强大的、可定制的、基于Zope的应用服务器上的内容管理框架。这个包是plone.restapi的7.5.0...

    H3C CAS REST API接口

    REST(Representational State Transfer)API是H3C CAS系统提供的一种接口方式,用于允许外部应用程序与CAS系统进行交互,实现系统的集成和二次开发。通过REST API,开发者可以远程操作和管理H3C CAS中的各种资源,...

    restapi-version

    通过学习和实践这个"restapi-version"项目,开发者不仅可以掌握如何在Spring MVC中实现REST API版本控制,还能了解到如何在实际项目中处理版本升级带来的挑战。这有助于提高API设计的质量和稳定性,为未来的扩展和...

    odoo rest api

    **Odoo REST API** Odoo是一款开源的企业资源规划(ERP)软件,它提供了一整套模块化的业务应用程序,包括但不限于销售管理、...对于那些想要深入学习和开发Odoo应用的人来说,理解和掌握Odoo REST API是至关重要的。

    asa-restapi-7131-lfbff-k8.SPA

    ASA restapi文件

    Salesforce_REST_API

    Salesforce REST API是***提供的一项强大的网络服务接口,它允许开发者通过...开发者可以通过Salesforce提供的详细API文档学习如何使用REST API来构建应用程序,从而实现对Salesforce平台上数据的高效访问和管理。

    Building a Rest API with Spring

    本文主要介绍了使用Spring框架构建REST API的全过程,内容包括了从基础的Spring Web应用搭建,到使用Java配置,再到通过Spring Security进行安全认证和授权,以及REST API的其他重要特性,例如:使用HTTP消息转换器...

    Rest api下载

    根据提供的文件信息,本文将对“Rest api下载”这一主题进行深入探讨,并结合描述与链接内容,提炼出关键知识点。 ### 一、Rest API简介 REST(Representational State Transfer)是一种网络应用程序的设计风格和...

    ActiveMQ与REST API实践

    **ActiveMQ与REST API实践** ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息中间件标准——Java Message Service(JMS)。ActiveMQ以其高性能、稳定性和丰富的特性在分布式系统中广泛使用,...

    Activiti v7 REST API.postman_collection.json

    Activiti v7 REST API postman集合

    Rest api服务器配置

    本文将深入探讨如何配置Rest API服务器,以及涉及到的相关技术点。 首先,理解REST(Representational State Transfer)架构风格的核心原则至关重要。REST强调的是资源的表述和状态转移,每个URL代表一个资源,通过...

    Learning WordPress REST API mobi

    Learning WordPress REST API 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书

    openshift-java-client, OpenShift REST API的Java客户端.zip

    openshift-java-client, OpenShift REST API的Java客户端 OpenShift客户端 OpenShift REST API的Java客户端。 它几乎提供了 rhc-* 命令行 工具( 。创建/重命名域,创建/销毁应用程序,列出应用程序,列出可用墨盒,...

    简单封装rest api(支持http,https请求及代理模式)

    现在很多主流平台采用rest方式的...于是乎简单封装下rest请求api(其实就是两个简单Java类,呵呵),可以实现http及https模式的请求,也支持JsessionId和代理模式,甚至系统自动发送邮件的功能也是用此工具类实现的.

Global site tag (gtag.js) - Google Analytics