RESTful API是什么勺馆?

restful.gif

要弄清楚什么是RESTful API戏售,首先要知道REST是什么。

REST草穆,表示性狀態(tài)轉(zhuǎn)移(representation state transfer)灌灾。簡單來說,就是用URI表示資源悲柱,用HTTP方法(GET, POST, PUT, DELETE)表征對這些資源的操作锋喜。

  • Resource: 資源,即數(shù)據(jù)豌鸡,存在互聯(lián)網(wǎng)上的可被訪問的實體
  • Representation: 數(shù)據(jù)的某種表現(xiàn)形式嘿般,如HTML, JSON段标。
  • State Transfer:狀態(tài)變化,HTTP方法實現(xiàn)

RESTful API 就是REST風(fēng)格的API〔└觯現(xiàn)在終端平臺多樣怀樟,移動、平板盆佣、PC等許多媒介向服務(wù)端發(fā)送請求后往堡,如果不適用RESTful API,需要為每個平臺的數(shù)據(jù)請求定義相應(yīng)的返回格式共耍,以適應(yīng)前端顯示虑灰。但是RESTful API 要求前端以一種預(yù)定義的語法格式發(fā)送請求,那么服務(wù)端就只需要定義一個統(tǒng)一的響應(yīng)接口痹兜,不必像之前那樣解析各色各式的請求穆咐。

RESTful 是典型的基于HTTP的協(xié)議。它有哪些設(shè)計原則和規(guī)范呢字旭?

  1. 資源对湃。首先要明確資源就是網(wǎng)絡(luò)上的一個實體,可以是文本遗淳、圖片拍柒、音頻、視頻屈暗。資源總是以一定的格式來表現(xiàn)自己拆讯。文本用txt、html养叛;圖片用JPG种呐、JPEG等等。而JSON是RESTful API中最常用的資源表現(xiàn)格式弃甥。

  2. 統(tǒng)一接口爽室。對于業(yè)務(wù)數(shù)據(jù)的CRUD,RESTful 用HTTP方法與之對應(yīng)潘飘。


    未命名文件.png
  3. URI肮之。統(tǒng)一資源標識符,它可以唯一標識一個資源卜录。注意到戈擒,URL(統(tǒng)一資源定位符)是一種URI,因為它可以唯一標志資源艰毒。但URL != URI筐高。應(yīng)該說URL 是URI的子集。因為URL使用路徑來唯一標識資源,這只是唯一標識資源的一種方式柑土。還可以用一個唯一編號來標識資源蜀肘,如example.html.fuce2da23。只不過這種方式并不被廣泛使用稽屏“绯瑁總之,要在概念上對URL和URI有所區(qū)分狐榔。

  4. 無狀態(tài)坛增。 所謂無狀態(tài)是指所有資源都可以用URI定位,而且這個定位與其他資源無關(guān)薄腻,不會因為其他資源的變動而變化收捣。這里引入一個冪等性的概念:無論一個操作被執(zhí)行一次還是多次,執(zhí)行后的效果都相同庵楷。比如對某資源發(fā)送GET請求罢艾,如果訪問一次和訪問十次獲得的數(shù)據(jù)一樣,那么就說這個請求具有冪等性尽纽。

  5. URL中只能有名詞咐蚯,不能出現(xiàn)動詞。這是因為在REST要求對資源的操作由HTTP 方法給出弄贿,而方法是由HTTP 請求報文頭部給出的仓蛆,自然不需要在URL中暴露操作方式。

還有一些屬于業(yè)務(wù)決定型規(guī)則挎春,比如應(yīng)該將版本加到URL中,對返回記錄進行限制過濾豆拨。不是強制的直奋,但是比較建議這么做。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末施禾,一起剝皮案震驚了整個濱河市脚线,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弥搞,老刑警劉巖邮绿,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異攀例,居然都是意外死亡船逮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門粤铭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挖胃,“玉大人,你說我怎么就攤上這事〗囱迹” “怎么了吗垮?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凹髓。 經(jīng)常有香客問我烁登,道長,這世上最難降的妖魔是什么蔚舀? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任饵沧,我火速辦了婚禮,結(jié)果婚禮上蝗敢,老公的妹妹穿的比我還像新娘捷泞。我一直安慰自己,他們只是感情好寿谴,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布锁右。 她就那樣靜靜地躺著,像睡著了一般讶泰。 火紅的嫁衣襯著肌膚如雪咏瑟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天痪署,我揣著相機與錄音码泞,去河邊找鬼。 笑死狼犯,一個胖子當(dāng)著我的面吹牛余寥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悯森,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼宋舷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瓢姻?” 一聲冷哼從身側(cè)響起祝蝠,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎幻碱,沒想到半個月后绎狭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡褥傍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年儡嘶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恍风。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡社付,死狀恐怖承疲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸥咖,我是刑警寧澤燕鸽,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站啼辣,受9級特大地震影響啊研,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸥拧,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一党远、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧富弦,春花似錦沟娱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盏缤,卻和暖如春砰蠢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唉铜。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工台舱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潭流。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓竞惋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親灰嫉。 傳聞我的和親對象是個殘疾皇子碰声,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

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