有一种设计风格叫RESTful

有一种设计风格叫RESTful

大家好,又见面了,我是全栈君。

一 前言

刚看了《RESTful Web APIs中文版》。试读了前两章。

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


二 我也来说REST

REST,representational state transfer , 字面理解:表述性状态转移。一时间看不懂?我開始也不懂,正常人怎么会看懂缺少主语宾语的“句子”的意思呢。补全:资源的状态通过浏览器和server之间的交互表述性的数据来改变。

好像把它翻译了一遍,算了无论了。举样例吧,我们server有一本书,它的状态是 id = 1 ,name = “book1”  ; 好了,如今 我们HTTP get 它一下。server给我们返回 id = 1 ,name = “book1” 这个状态,这时候我们浏览器也变成状态1了。

如今我要改它的名字为”book2“, 于是我们来HTTP post 它一下,这post 是带參数的(id=1,name=”book2″)用<form>;我们浏览器这时候书是状态2,我们post 到server就是把状态2 “转移”给server。(server怎么处理先无论)结果server变成了状态2。这不就是所谓的状态转移咯。

假设说让你用一句话表达你懂REST , 你会怎么说? 我会说:restful uri 没有动词。 可能大家也知道获取一本书的restful uri 是 “book/1” 而不是“getBook/1”。

由于Rest 把server的东西都叫做资源,一本书是一个资源,实体。那你就会问了。那动作哪去了? 在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核心模式》里面的话,“模式是总结出来的”。也正解释了为什么我们不知道这样的模式但平时却在用了,由于这些模式风格也是大师做多了经验多了总结出来的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115865.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 浅析YOLO目标检测算法AI安全帽识别技术及场景应用[通俗易懂]

    浅析YOLO目标检测算法AI安全帽识别技术及场景应用[通俗易懂]将AI安全生产摄像机与EasyCVR视频平台结合使用,通过安全帽检测,可以有效地来检测工人是否合规穿戴个人防护装备,提高视频监控应用在行业多场景下的智能分析与处理能力。

  • Java学习书籍整理

    Java学习书籍整理不知不觉中,做Java开发已经四年了,趁着现在换了工作,还算比较闲,就整理一下自己学习的一些知识。在学习过程中,我喜欢找的一些电子书来系统化的学习,多数时候我都只是做一个大概的了解,没有深入学习,基本就是看下目录,看下前几章的内容,深入的只会在实际用的时候才去详细看了。我从以下几个方面整理了一下这些学习的电子书,分享给大家,免得到处去找这些资源,百度脑图里面的分类也…

  • java scanner next nextline nextint区别

    java scanner next nextline nextint区别next表示返回第一个字符串而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。简单的说nextLine() 返回的是一行。而next() 返回的只是第一个输入。 比如;输入hello java nextLine() 读的是hello java next() 读的是hello

  • CSDN第一篇博客日记

    CSDN第一篇博客日记CSDN注册很久了,但一直都没来弄,因为开始刚刚学C和C++,许多的东西进来看不懂,觉得这还不是我的一片天地,而转眼又过了两年了,现在的我已经是大二快读完了,我学的是信息与计算科学专业,学了C和C++,现在正在学习数据结构,感觉有点难,看不懂~ 有个时候碰到问题总是自己不能解决,在QQ问问里和百度里搜吧答案找一个只能是一个,过后又忘记了,想把自己的问题以及学习过程记录下来,也想把自己得到的好的解

  • 统计学 入门基础PDF( Probability Density Function) 和PMF ( Probability Mass Function )

    统计学 入门基础PDF( Probability Density Function) 和PMF ( Probability Mass Function )PMF(概率质量函数):是对 离散随机变量的定义. 是离散随机变量 在各个特定取值的概率. 该函数通俗来说,就是对于一个离散型概率事件来说,使用这个函数来求它的各个成功事件结果的概率.PDF(概率密度函数):是对连续性随机变量的定义.与PMF不同的是PDF在特定点上的值并不是该点的概率,连续随机概率事件只能求一段区域内发生事件的概率,通过对这段区间进

  • JAVA设计模式初探之适配器模式

    1. 概述  将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题  即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。      下面是两个非常形象的例子             3. 模式中的角色  3.1 目标接口(Target):客户所期待的接

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号