RESTful是什么

在程序猿DD Spring Boot基礎(chǔ)教程的開山篇《基礎(chǔ)項目構(gòu)建投队,引入Web模塊寝志,完成一個簡單的RESTful API》中,RESTful?是什么呢缸剪?

那么先百度一下:一種軟件構(gòu)架風(fēng)格局齿,設(shè)計風(fēng)格而不是標準,只是提供了一組設(shè)計原則和約束條件橄登。它主要用于客戶端和服務(wù)器交互類的軟件抓歼。基于這個風(fēng)格設(shè)計的軟件可以更加簡潔拢锹,更有層次谣妻,更用以實現(xiàn)緩存等機制。

是不是一頭霧水卒稳,百度百科中對REST以及RESTful有非常理論的介紹蹋半,不過雖然耐著性子看完了,仍然不知所云充坑。好在知乎有《怎樣用通俗的語言解釋REST减江,以及RESTful?》捻爷。

那么本文將對答者的回答自行梳理一下:

????要了解REST辈灼,首先需要了解API(Application Programming Interface,應(yīng)用程序編程接口)。什么是API呢也榄?首先它的定義是一個接口巡莹,舉個形象的例子來說,就是一個公司比如騰訊甜紫,他們對自己項目封裝降宅,提供一個API,然后我們或者一些小公司可以通過這些API囚霸,對封裝的這個項目進行交互腰根。通過這個渠道打到我們的目的。

????了解了API拓型,那么REST是什么呢额嘿?他是一種構(gòu)架風(fēng)格,騰訊這類公司要遵循這種風(fēng)格建立API吨述。那么REST的具體風(fēng)格是什么呢岩睁?REST(Representational State Transfer)(表現(xiàn)層狀態(tài)轉(zhuǎn)移)。又是一頭霧水揣云,什么是表現(xiàn)層狀態(tài)轉(zhuǎn)移呢捕儒?

????這里我們要了解一下Web,因為REST是基于Web應(yīng)用的。Web:分布式信息系統(tǒng)為超文本文件和其他對象(資源)提供訪問入口刘莹。資源是Web構(gòu)架的關(guān)鍵點阎毅,當(dāng)資源與Web交互時,它需要3個操作点弯,識別(identify)扇调,表示(represent),交互(interact with)抢肛,通過這三個操作狼钮,又引入了3個概念uri(統(tǒng)一資源標識符包括url和urn)識別資源;representation(例如html捡絮,xml熬芜,視頻,圖片)表示資源福稳;通過協(xié)議(包括http涎拉,ftp等)與資源進行交互。

??如果我們想將一個資源文件顯現(xiàn)出來的圆,就要通過uri進行暴露鼓拧。uri的設(shè)計只是負責(zé)把資源通過合理的方式暴露出來。對資源沒有任何操作越妈,操作是通過http動詞來實現(xiàn)的季俩,所以REST通過URI暴露資源時,會強調(diào)不要再URI中出現(xiàn)動詞叮称。

??比如:左邊的是錯誤的設(shè)計种玛,右邊的是正確的

GET???? /rest/api/getDogs????——> GET?????/rest/api/dogs????? 獲取所有的小狗

GET????/rest/api/addDogs????——> POST????????/rest/api/dogs??????添加一個小狗

GET????/rest/api/editDogs/:dog_id????——>????PUT????/rest/api/dogs/:dog_id????修改一個小狗

GET????/rest/api/deleteDogs/:dog_id????——>????DELETE????/rest/api/dogs/:dog_id????刪除一個小狗

左邊的這種設(shè)計,不符合REST風(fēng)格瓤檐,uri只負責(zé)準確無誤的暴露資源,而getDogs娱节、addDogs已經(jīng)包含了對資源的操作挠蛉,這是不對的。而右邊是通過具體的Http動詞來體現(xiàn)肄满。所以很容易理解REST很好利用了HTTP本來的特性谴古,而不是只是將HTTP作為傳輸層這么簡單。

總結(jié)一下:URL定位資源稠歉,用HTTP動詞(GET,POST,DELETE,DETC)描述操作掰担。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市怒炸,隨后出現(xiàn)的幾起案子带饱,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勺疼,死亡現(xiàn)場離奇詭異教寂,居然都是意外死亡,警方通過查閱死者的電腦和手機执庐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門酪耕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人轨淌,你說我怎么就攤上這事迂烁。” “怎么了递鹉?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵婚被,是天一觀的道長。 經(jīng)常有香客問我梳虽,道長址芯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任窜觉,我火速辦了婚禮谷炸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘禀挫。我一直安慰自己旬陡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布语婴。 她就那樣靜靜地躺著描孟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砰左。 梳的紋絲不亂的頭發(fā)上匿醒,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音缠导,去河邊找鬼廉羔。 笑死,一個胖子當(dāng)著我的面吹牛僻造,可吹牛的內(nèi)容都是我干的憋他。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼髓削,長吁一口氣:“原來是場噩夢啊……” “哼竹挡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起立膛,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤揪罕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耸序,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡忍些,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坎怪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罢坝。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖搅窿,靈堂內(nèi)的尸體忽然破棺而出嘁酿,到底是詐尸還是另有隱情,我是刑警寧澤男应,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布闹司,位于F島的核電站,受9級特大地震影響沐飘,放射性物質(zhì)發(fā)生泄漏游桩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一耐朴、第九天 我趴在偏房一處隱蔽的房頂上張望借卧。 院中可真熱鬧,春花似錦筛峭、人聲如沸铐刘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镰吵。三九已至,卻和暖如春挂签,著一層夾襖步出監(jiān)牢的瞬間疤祭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工竹握, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留画株,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓啦辐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜈项。 傳聞我的和親對象是個殘疾皇子芹关,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 一說到REST,我想大家的第一反應(yīng)就是“啊紧卒,就是那種前后臺通信方式侥衬。”但是在要求詳細講述它所提出的各個約束,以及如...
    時待吾閱讀 3,433評論 0 19
  • 從今天開始轴总,我開始學(xué)習(xí)Retrofit直颅,整體Retrofit內(nèi)容如下: 1、Retrofit解析1之前哨站——理解...
    隔壁老李頭閱讀 6,123評論 4 46
  • 解釋一 REST -- REpresentational State Transfer 直接翻譯:表現(xiàn)層狀態(tài)轉(zhuǎn)移怀樟。...
    時間之友閱讀 2,238評論 0 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理功偿,服務(wù)發(fā)現(xiàn),斷路器往堡,智...
    卡卡羅2017閱讀 134,699評論 18 139
  • 前言 這將是一個系列的博文械荷,這個系列將介紹一個iPhone軟件項目中遇到的各種坑以及我們的解決方案,其中包括:架構(gòu)...
    SeeLee閱讀 1,031評論 1 6