怎样用浅显的言语诠释怎么着叫 REST,以及怎样是 RESTful?葡京娱乐十大排名

作者:覃超

1

链接:https://www.zhihu.com/question/28557115/answer/48094438

那年,十三岁,好像是冬季吗,你转学到我们班里,一身的桀骜不顺,叛逆的近乎要与满世界作对。

来源:知乎

你穿牛仔,说一口洋气的国语,抽烟,打架,旷课,打台球,来没多长期就和高年级的坏孩子称兄道弟。

作品权归小编所有,转发请联系小编得到授权。

突出的标题少年。

@Ivony师资的一句话概括很深邃:

您在班上的日子尚无固定,好像你想来就来,不想来就足以不来,好像没人可以管你,也没人愿意管你,你像被世界放弃的遗孤。

URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

你在班上没有对象,也不搭理别人,很酷的规范。可是你有时候却跑来和我讲讲,但是您不和人家说话,偏偏要和自己说话,我认为那样会突显自己和外人分歧等,所以我总是很拘束。

— 简洁版 —

班上的男孩子都看不惯你,特想揍你,至于有没有揍成,我始终不得而知。但你就好像最擅长的就是打架,听说您就是因为打架转的学。

0.
REST不是”rest”那些单词,而是多少个单词缩写。但尽管这一个单词说出来,也不能知晓在说什么样
-_-!! (不是要贬低人,是本人要好也驾驭困难);

2

1.
REST叙述的是在互连网中client和server的一种相互格局;REST本身不实用,实用的是怎么设计
RESTful API(REST风格的互联网接口);

我是同桌,老师眼里战表出色的乖乖女。

  1. Server提供的RESTful
    API中,URL中只使用名词来指定资源,原则上不选拔动词。“资源”是REST架构或者说整个互联网拍卖的主干。比如:

您是同桌,老师眼里兴妖作怪的坏小孩。

http://api.qc.com/v1/newsfeed:
获取某人的异样;

俗套的电视机剧里说,坏小孩最喜爱嘲弄,整蠱乖乖女。

http://api.qc.com/v1/friends:
获取某人的莫逆之交列表;

但是你从未。

http://api.qc.com/v1/profile:
获取某人的详细音讯;3.
用HTTP协议里的动词来促成资源的丰硕,修改,删除等操作。即透过HTTP动词来兑现资源的情事扭转:

那会儿我们上学离家远,为了节省时间,早晨相似吃从家带的菜然后去饭馆打饭吃,带来的菜窝到正午应当都不是很好吃了。

GET    用来博取资源,

你差距,你每日住在母校,吃在餐馆,但凡住在全校的教工和餐饮店师傅您都就像很熟。

POST  用来新建资源(也得以用于更新资源),

有四遍,我照常去食堂打饭,回来却发现自己菜盒子里菜被换了,换成了那种食堂刚炒出来的还冒着特有热气的菜。

PUT    用来更新资源,

那一幕我迄今还记得,我倒掉了那份菜,就接近要与海内外揭橥,我和此人或多或少涉及也从没,他给我的,不是自己愿意的。我不想变成和豪门不雷同的少儿。

DELETE  用来删除资源。比如:

自己固执地不再和您讲讲,有您的地点我竭尽躲开。

DELETEhttp://api.qc.com/v1/friends:
删除某人的好友 (在http parameter指定好友id)

而是,叛逆如你,只会弄巧成拙,越挫越勇,变本加厉。

POSThttp://api.qc.com/v1/friends:
添加好友

你每日产出在自家眼前的时辰更是多,花样百出,逗比和敬意自由切换。

UPDATEhttp://api.qc.com/v1/profile:
更新个人资料

你说,你一天不理我,我就用烟头在手上烫一个标记。

明令禁止利用:
GEThttp://api.qc.com/v1/deleteFriend图例:

那般黑社会的不二法门也唯有你那种题材少年才能想的出呢。

<img
src=”https://pic1.zhimg.com/7405939b62a73f28846533de08db3a80\_b.jpg
data-rawwidth=”1328″ data-rawheight=”702″ class=”origin_image
zh-lightbox-thumb” width=”1328″
data-original=”https://pic1.zhimg.com/7405939b62a73f28846533de08db3a80\_r.jpg"&gt;

自我不信任您会对协调这么惨酷。可是却无形中在心尖偷偷担心您真做出那样傻的行为。

4.
Server和Client之间传递某资源的一个表现形式,比如用JSON,XML传输文本,或者用JPG,WebP传输图片等。当然仍能压缩HTTP传输时的数量(on-wire
data compression)。

算是有一天,你揭发了您满是烫伤的那只手。

  1. 用 HTTP Status Code传递Server的情况新闻。比如最常用的 200
    表示成功,500 表示Server内部错误等。

自我惊奇又莫名的痛惜。

保养新闻如同此点。最终是要解放思想,Web端不再用事先典型的PHP或JSP架构,而是改为前段渲染和附带处理大致的商务逻辑(比如AngularJS或者BackBone的部分样例)。Web端和Server只利用上述定义的API来传递数据和改动多少状态。格式一般是JSON。iOS和Android由此可知。由此可知,Web,iOS,Android和第三方开发者变为平等的角色通过一套API来一起消费Server提供的劳务。

多多傻气!

— 详细版 —

以这种自残的法子你赢了这一场较量。

先说REST名称

我们也从没变得更好。我登高履危,触目惊心,大家的言语好像永远都是你在问我在答,可是本人却感受到了你的欢欣。

REST — REpresentational State Transfer

3

首先,之所以晦涩是因为后边主语被去掉了,全称是 Resource Representational
State
Transfer:通俗来讲就是:资源在互联网中以某种表现方式进行状态转移。分解开来:

有人说,青春是道明媚的忧思。

Resource:资源,即数据(前边说过网络的主旨)。比如 newsfeed,friends等;

我不晓得自己今日骨子里的发愁是还是不是那时候青春里埋下的种子。

Representational:某种表现方式,比如用JSON,XML,JPEG等;

我只驾驭,因为你,我的金佳恩境遇了不怎么非议,而变得不是那么美好。

State Transfer:状态变化。通过HTTP动词完毕。

您这么张扬。

REST的出处

下雨天,你非要在雨中淋着跟在自己身后。

罗伊 Fielding的毕业随想。那哥们儿参预规划HTTP协议,也是Apache Web
Server项目(可惜现在早就是 nginx 的全世界)的co-founder。PhD的结束学业院校是
UC
Irvine,Irvine在加州,有着丰裕的日光和华美的沙滩,是名满天下的富人区。Oculus
VR 的总部就坐落于此(虚拟现实眼镜,被FB收购,CTO为Quake和Doom的撰稿人 JohnCarmack)。

自身回家,你非要在半路等着。

议论周知,杂文都是生硬难懂的。当年在CMU阅读的时候,很多课程都会布置周周两篇的Paper
review。现在回顾起来每一遍写Paper
review都是本人最好难熬的时候。REST那篇硕士杂谈毫无疑问更甚。

我住在老师家,你依旧跑去和师资聊天。

随想地址:Architectural Styles and the Design of Network-based Software
Architectures

放假,你不知从哪弄来一辆破摩托,沿着我家门口来来回回地轰鸣个不停。以至于,我后来听见摩托的轰鸣声从我家门口过,我就要躲起来。幸好,那时其实其本没有怎么摩托车。

REST章节:Fielding Dissertation: CHAPTER 5: Representational State
Transfer
(REST)

…….

REST那章我初读了,整个诗歌没有读完 =_=

您的行动,都让自身如骨在喉,芒刺在背。

<img
src=”https://pic3.zhimg.com/11cdfc60bde58e8545bafe42f0af79ca\_b.jpg
data-rawwidth=”500″ data-rawheight=”375″ class=”origin_image
zh-lightbox-thumb” width=”500″
data-original=”https://pic3.zhimg.com/11cdfc60bde58e8545bafe42f0af79ca\_r.jpg"&gt;

算是有一天,老师在开会时说到了早恋那么些敏感的话题,那深远地刺痛了我。

RESTful API

自身记得那多少个上午,我在同校的陪伴下哭哭啼啼地回了家,我百口莫辩,只是委屈到玩物丧志。

实用的是何等科学地明白 RESTful架构和筹划好RESTful API。

自身痛恨你把自家拉下了水。

先是为何要用RESTful结构吧?

我想自己的忧郁就是从那时早先患上的啊。

世家都晓得”明代”网页是前端后端融在一块儿的,比如事先的PHP,JSP等。在前头的桌面时代难点不大,可是近日移动互连网的提升,各种别型的Client屡见不鲜,RESTful可以通过一套统一的接口为
Web,iOS和Android提供服务。其余对于普遍平台来说,比如Facebookplatform,腾讯网开放平台,微信公共平台等,它们不须求有显式的前端,只须求一套提供劳务的接口,于是RESTful更是它们最好的挑选。在RESTful架构下:

4

<img
src=”https://pic2.zhimg.com/06ee404783540f0af299042057738a99\_b.jpg
data-rawwidth=”550″ data-rawheight=”250″ class=”origin_image
zh-lightbox-thumb” width=”550″
data-original=”https://pic2.zhimg.com/06ee404783540f0af299042057738a99\_r.jpg"&gt;

十四岁,教我的教育工小编调走了,爸妈让我随着导师转学了。

Server的API怎么着筹划才满意RESTful须求?

那边没有您。

率先是简洁版里面的那几点。外加一些附带的 best practices:

真好。

  1. URL root:

自身欢娱陌生的环境。

https://example.org/api/v1/***

本身又足以是正常的娃娃了。

https://api.example.com/v1/\2.
API versioning:*

在那一个陌生的地点我又认识了许多新校友,有了新的友谊。

能够置身URL里面,也得以用HTTP的header:

只是自家偶尔会想起你。

/api/v1/

听讲你也离开了大家的学府,不知去向。

  1. URI使用名词而不是动词,且推荐用复数。

新生,我或者不习惯跟着导师的生存,爸妈又把自己转了归来。

BAD

原先的班级已被拆掉重组,有新面孔也有老同学。

/getProducts

本身又起来喜欢地上学了。

/listOrders

5

/retrieveClientByOrder?orderId=1

一时间就是初三了。

GOOD

每日被深奥的数理化折腾的半死不活。

GET /products : will return the list of all products

有一天,有个同学来叫我说,有人在学堂门口找你。

POST /products : will add a product to the collection

自己的心刹那间就意识到一定就是您了,你就是如此阴魂不散的人。

GET /products/4 : will retrieve product #4

自我紧张,生怕被您重蹈覆辙。

PATCH/PUT /products/4 : will update product #4

丢失,你不会用尽。

  1. 保证  HEAD 和 GET
    方法是平安的,不会对资源气象有所改观(污染)。比如严苛杜绝如下景况:

自己只可以装作若无其事。

GET /deleteProduct?id=1

老样子,你问我答。

  1. 资源的地点推荐用嵌套结构。比如:

幸而,很快就上课了。

GET /friends/10375923/profile

好在,你好像长大了,不再像两年前同一会纠缠不休。

UPDATE /profile/primaryAddress/city6.
警惕再次来到结果的大大小小。如果过大,及时举行分页(pagination)或者投入限制(limit)。HTTP协议接济分页(Pagination)操作,在Header中使用
Link 即可。

安然的分开。

  1. 行使科学的HTTP Status Code表示访问状态:HTTP/1.1: Status Code
    Definitions

6

8.
在回来结果用强烈易懂的文书(String。注意重临的荒谬是要给人看的,幸免用
1001 那种错误音信),而且万分地参预注释。

三年,说不上太用力的上学,终于见了明白。考上中专,离开家。抑制不住要去更广阔天地的希望与欢畅。

9.
有关安全:自己的接口就用https,加上一个key做三遍hash放在最终即可。考虑到国情,HTTPS在有线互连网里不安宁,可以运用Application
Level的加密手段把方方面面HTTP的payload加密。有趣味的爱侣可以用手机连上电脑的共享Wi-Fi,然后用Charles监听微信的互连网请求(发照片或者刷朋友圈)。

自身认识了更加多的意中人,大家其乐融融。

设倘使平台的API,可以用成熟不过复杂的OAuth2,微博今日头条那篇:授权机制表明

有一天,门卫姑姑喊接电话,我拿起电话,居然是您,我至今仍不精通你是怎么在尤其电话还未普及的年份弄到大家校园的对讲机的。并且仍旧要转很频仍的那种电话。

各端的有血有肉落到实处

忘记聊了怎么,反正大家永远都是你在说,我在沉默。

如上边的图所示,Server统一提供一套RESTful
API,web+ios+android作为同样公民调用API。各端发展到近年来,都有一套相比成熟的框架来帮开发者一语双关。

您的音响从电话机那端传来,充满磁性。我第三次听到”声音控”这么些词就想到了你。

— Server —

7

推荐: Spring MVC 或者 Jersey 或者 Play Framework

小日子一每日身故。寒假快来了。你突然出现了,其实我对您的神出鬼没应该要屡见不鲜才对,不按常理出牌才是您呵。

教程:

本人没有地点可以带你去,只可以带你去大家高校附近的一座山上走走。你抽着烟,即使自己很讨厌烟味,但不得不认可,你是本人见过抽烟最有范儿的男生。

Getting Started · Building a RESTful Web
Service

那应该是大家先是次大公至正的肩并肩去散散步呢。

— Android —

即使自己要么很拘束。而你仍旧仍旧逗比和盛情自由切换。

推荐: RetroFit
(Retrofit)
或者 Volley (mcxiaoke/android-volley ·
GitHub
Google官方的被block,就不贴了
)**

自我就像是穿了一件白棉袄,你围了一条羊绒围巾。

教程:

很冷,你把围巾围在自我脖子上,不容置疑的,没有协议的绵薄。我现在才理解,你最大的魅力就在于此。

Retrofit โ�� Getting Started and Create an Android
Client

后来,那条围巾就直接压在我家的箱子里,偶尔拿出来翻晒,就好像晒一段晦涩而又美好的旧时光。直到大家搬家,那条围巾也不知所踪了。

快快Android开发连串网络篇之Retrofit

8

— iOS —

少壮年少的光景终于灰飞烟灭了。

推荐:RestKit (RestKit/RestKit ·
GitHub
)

大家好像真的长大了。

教程:

咱俩就如两条平行线在投机约定的清规戒律里越走越远。

Developing RESTful iOS Apps with
RestKit

自我忘记了俺们最终一回汇合是怎么着时候,也忘记自己说了什么样,纪念里总是记得你狠狠地砸了一个打火机,炸出很大的响声。那是你首先次在自己前边发火,好像也是唯一一回。

— Web —

9

引进随便搞!可以用重量级的AngularJS,也足以用轻量级 Backbone + jQuery
等。

您再度联系到自身是一年前。

教程:http://blog.javachen.com/2015/01/06/build-app-with-spring-boot-and-gradle/

电话里你的鸣响仍旧充满磁性。你没有诉说过往各种,只是问我好不佳。

参考:

依然你问我答。

[1]:Some REST best
practices

照例逗比深情。

[2]:GitHub API
v3

从没十几年的鸿沟,往事好像就在明天。

[3]:葡京娱乐十大排名,tlhunter/consumer-centric-api-design ·
GitHub

你说方今常听”听说爱情回来过”总是听到泪流满面,是还是不是老了?

说到底附带一个彩蛋:

您说,我谈的多少个女对象我发给你看看,呵呵,开玩笑。

非死不可台球表演:台球1—在线播放

您说,我得以来看望你吧?我不置可以如故不可以。

不过,大家最终如故不曾相会。

10

人生匆匆。

些微事过境迁。

有些人她出现她离开就是如此自自然然。

就好像现在,你又不要预兆的流失了。

下一回的面世会不会又是一个十年?

万一是,那么下次我必然要记得问你:嘿,这个年,你仍可以吗?

感谢您丰盛了自我人生的回忆。

谢谢您用一首歌诠释了你的无奈深情。

自家想告知您,我得以淡忘记念里的居多个人,但自身有史以来平素不曾忘掉过您,忘记过我们冒傻气的年青年少。