有一种设计风格叫RESTful

一 前言

刚看了《RESTful Web APIs中文版》,试读了前两章。每本书的第一章都是抽象得不得了,是整本书的总结;开篇说基础有点简单,从教你怎么向地址栏输入地址访问网页开始(某人女友还真不会这个),第二章是个简单例子,一度睡着。该书由三个关键词“RESTful
“ ”Web “ ”APIs“,貌似废话......但是要把这三个词加起来才是该书的核心。说REST太泛了,说"RESTful uri" 够精确,我相信后面章节也是围绕怎么设计"RESTful
uri"来说的。


我也来说REST

REST,representational state transfer , 字面理解:表述性状态转移。一时间看不懂?我开始也不懂,正常人怎么会看懂缺少主语宾语的“句子”的意思呢,补全:资源的状态通过浏览器和服务器之间的交互表述性的数据来改变。好像把它翻译了一遍,算了不管了。举例子吧,我们服务器有一本书,它的状态是 id = 1 ,name = "book1"
 ; 好了,现在 我们HTTP get 它一下,服务器给我们返回 id = 1 ,name = "book1" 这个状态,这时候我们浏览器也变成状态1了。现在我要改它的名字为”book2“, 于是我们来HTTP post 它一下,这post 是带参数的(id=1,name="book2")用<form>;我们浏览器这时候书是状态2,我们post 到服务器就是把状态2
“转移”给服务器;(服务器怎么处理先不管)结果服务器变成了状态2。这不就是所谓的状态转移咯。

如果说让你用一句话表达你懂REST , 你会怎么说? 我会说:restful uri 没有动词。 可能大家也知道获取一本书的restful uri 是 “book/1” 而不是“getBook/1”。因为Rest
把服务器的东西都叫做资源,一本书是一个资源,实体。那你就会问了,那动作哪去了? 在HTTP 那里。HTTP 有get 方法,这个就是动词。我会告诉你,HTTP还有delete 方法,没了解过的傻眼了吧。而这本书由重点讲 HTTP 8方法中 的5个,分别是 get head post put  delete   。还有,restful uri 没有版本之说,老实说难道我的书架上的一本书《黑客与画家》还有新和旧之分?

三 谈谈RESTful

符合REST的叫做RESTful。RESTful
是一种设计风格,而不是标准。标准一定要遵守,风格不遵守也不会错,只是变样了。style , 我玩《鬼泣》的时候就知道什么叫style , 还是问鸟叔比较好?  自己斟酌。我做过几个web项目,都是用一些功能粘合起来的,uri 也随便来设计,删除一条数据 就用 “deleteBook?id=1”,其实这个是get请求。不知道这是叫什么,反正肯定不是RESTful。人们总喜欢用Rest
跟 SOAP和XML-RPC 比,说Rest 比后两者好得多了去,后两者不是很了解啦。有一点值得我们注意的是,我们平时在开发的时候,用的方式可能就是某种模式/风格,我们学习这种模式/风格会让我们对开发有更好地理解。而这些模式风格哪里来的呢?我想引用《J2EE核心模式》里面的话,“模式是总结出来的”。也正解释了为什么我们不知道这种模式但平时却在用了,因为这些模式风格也是大师做多了经验多了总结出来的。

有一种设计风格叫RESTful,布布扣,bubuko.com

时间: 2024-10-21 06:42:12

有一种设计风格叫RESTful的相关文章

Javascript 5种设计风格

1.过程式的程序设计 <script> /*Start and Stop animations using functions.*/ function startAnimation() { //.... } function stopAnimation() { //.... } </script> 2.创建类对象 <script> /* Anim class. */ var Anim = function () { //... }; Anim.prototype.sta

PHP实现Restful风格的API(转)

Restful是一种设计风格而不是标准,比如一个接口原本是这样的: http://www1.qixoo.com/user/view/id/1表示获取id为1的用户信息,如果使用Restful风格,可以变成这样: http://www1.qixoo.com/user/1可以很明显的看出这样做的好处: 1.更简洁的URL,对程序员友好 2.不暴露内部代码结构,更安全 那么,如何实现这个接口呢?首先,我们需要接收到/user/1部分. $path = $_SERVER['PATH_INFO'];$ar

webservice restful rpc

webservice: 上世纪90年代流行的分布式技术,如DCOM,CORBA,RMI,范式是RPC,但各系统数据类型不一致,实现/调用机制不同,各系统间互通不可能.XML的出现,让数据类型一致了,SOAP的出现,让各系统可以相互调用了.Simple Object Access Protocol的原意是XML-RPC,但人们很快就发现方法调用太狭隘,而消息传递更加通用.WSDL即支持rpc/encoded也支持document/literal,但前者已成为历史遗留.webservices是soa

无状态、REST、RESTful 和 Web Services【整理】

在理解 OpenStack 的过程中,常常遇到 REST 这个概念,现从各处搜罗如下: 对 Web Service 的理解: Web 服务有点像对计算机友好的网页,基于让程序可以跨网络交换信息的标准和协议,一般是使用一个程序,也就是客户机或服务请求者(serice requester)请求信息或服务:使用另外一个程序,也就是服务器或服务器提供者(service provider)提供信息或服务. 它是在另外一个层次上的 Web 分析,或者可以将 Web 服务看作为用计算机控制客户机而不是人类——

RESTful转载,多看几遍就理解了写点自己的看法和理解

要理解资源路由就要理解什么是RESTful.如果一个架构符合REST(即Representational State Transfer的缩写,意为表现层状态转化)原则,就称它为RESTful架构. REST提出了一些设计概念和准则: 1.网络上的所有事物都被抽象为资源(resource):2.每个资源对应一个唯一的资源标识(resource identifier):3.通过通用的连接器接口(generic connector interface)对资源进行操作:4.对资源的各种操作不会改变资源标

PHP实现Restful风格的API

Restful是一种设计风格而不是标准,比如一个接口原本是这样的: http://www1.qixoo.com/user/view/id/1表示获取id为1的用户信息,如果使用Restful风格,可以变成这样: http://www1.qixoo.com/user/1可以很明显的看出这样做的好处: 1.更简洁的URL,对程序员友好 2.不暴露内部代码结构,更安全 那么,如何实现这个接口呢?首先,我们需要接收到/user/1部分. $path = $_SERVER['PATH_INFO'];$ar

Restlet+Fastjson 快速构建轻量级Java RESTful Webservice

自己入门Java时做过一个小型RESTful Web Service的项目,这里总结一下.服务的数据交换格式主要采用JSON协议,服务为REST风格,连接采用Http协议,数据库使用MySQL,OR Mapping采用的是Hibernate.  小数据直接用URL传参,配合Restlet 的强大的 URI重写重定向,层级URI路由功能,更是十分的方便.数据大时就是用JSON协议,配合强大的Fastjson,解析起来也是十分迅速和便捷, 主要用的类库: Restlet Framework,Java

PHP restful 接口

首先我们来认识下RESTful Restful是一种设计风格而不是标准,比如一个接口原本是这样的: http://www.test.com/user/view/id/1 表示获取id为1的用户信息,如果使用Restful风格,可以变成这样: http://www.test.com/user/1 可以很明显的看出这样做的好处: 1.更简洁的URL,对程序员友好 2.不暴露内部代码结构,更安全 那么,如何实现这个接口呢?首先,我们需要接收到/user/1部分. $path = $_SERVER['P

初见微服务之RESTful API

1. REST名称由来 REST全称为Representational State Transfer,即表述性状态转移,最早由Roy Feilding博士在世纪之交(2000年)提出,喜欢追根溯源的朋友可以读一下他的博士论文<Architectural Styles and the Design of Network-based Software Architectures>,这时距HTTP1.1协议标准正式发布(1999年6月)仅一年的时间. 岁月的痕迹跨越了十多年,技术的进步日新月异,所有