什么是RESTful API?

要弄清楚什么是RESTful API,首先要弄清楚什么是REST逾滥。REST -- REpresentational State Transfer羡儿,英語的直譯就是“表現(xiàn)層狀態(tài)轉移”。如果看這個概念早像,估計沒幾個人能明白是什么意思僻肖。那下面就讓我來用一句人話解釋一下什么是RESTful:URL定位資源,用HTTP動詞(GET,POST,PUT,DELETE)描述操作卢鹦。

???? Resource:資源臀脏,即數(shù)據(jù)。

???? Representational:某種表現(xiàn)形式,比如用JSON揉稚,XML秒啦,JPEG等;

???? State Transfer:狀態(tài)變化窃植。通過HTTP動詞實現(xiàn)帝蒿。

? ? 所以RESTful API就是REST風格的API荐糜。 那么在什么場景下使用RESTful API呢巷怜?在當今的互聯(lián)網(wǎng)應用的前端展示媒介很豐富。有手機暴氏、有平板電腦還有PC以及其他的展示媒介延塑。那么這些前端接收到的用戶請求統(tǒng)一由一個后臺來處理并返回給不同的前端肯定是最科學和最經濟的方式,RESTful API就是一套協(xié)議來規(guī)范多種形式的前端和同一個后臺的交互方式答渔。

???? RESTful API由后臺也就是SERVER來提供前端來調用关带。前端調用API向后臺發(fā)起HTTP請求,后臺響應請求將處理結果反饋給前端沼撕。也就是說RESTful 是典型的基于HTTP的協(xié)議宋雏。那么RESTful API有哪些設計原則和規(guī)范呢?

???? 1务豺,資源磨总。首先是弄清楚資源的概念。資源就是網(wǎng)絡上的一個實體笼沥,一段文本蚪燕,一張圖片或者一首歌曲。資源總是要通過一種載體來反應它的內容奔浅。文本可以用TXT馆纳,也可以用HTML或者XML、圖片可以用JPG格式或者PNG格式汹桦,JSON是現(xiàn)在最常用的資源表現(xiàn)形式鲁驶。

???? 2,統(tǒng)一接口舞骆。RESTful風格的數(shù)據(jù)元操CRUD(create,read,update,delete)分別對應HTTP方法:GET用來獲取資源灵嫌,POST用來新建資源(也可以用于更新資源),PUT用來更新資源葛作,DELETE用來刪除資源寿羞,這樣就統(tǒng)一了數(shù)據(jù)操作的接口。

???? 3赂蠢,URI绪穆。可以用一個URI(統(tǒng)一資源定位符)指向資源,即每個URI都對應一個特定的資源玖院。要獲取這個資源訪問它的URI就可以菠红,因此URI就成了每一個資源的地址或識別符。一般的难菌,每個資源至少有一個URI與之對應试溯,最典型的URI就是URL。

???? 4郊酒,無狀態(tài)遇绞。所謂無狀態(tài)即所有的資源都可以URI定位,而且這個定位與其他資源無關燎窘,也不會因為其他資源的變化而變化摹闽。有狀態(tài)和無狀態(tài)的區(qū)別,舉個例子說明一下褐健,例如要查詢員工工資的步驟為第一步:登錄系統(tǒng)付鹿。第二步:進入查詢工資的頁面。第三步:搜索該員工蚜迅。第四步:點擊姓名查看工資舵匾。這樣的操作流程就是有狀態(tài)的,查詢工資的每一個步驟都依賴于前一個步驟谁不,只要前置操作不成功坐梯,后續(xù)操作就無法執(zhí)行。如果輸入一個URL就可以得到指定員工的工資拍谐,則這種情況就是無狀態(tài)的烛缔,因為獲取工資不依賴于其他資源或狀態(tài),且這種情況下轩拨,員工工資是一個資源践瓷,由一個URL與之對應可以通過HTTP中的GET方法得到資源,這就是典型的RESTful風格亡蓉。

???? 說了這么多晕翠,到底RESTful長什么樣子的呢?

GET:http://www.xxx.com/source/id 獲取指定ID的某一類資源砍濒。例如GET:http://www.xxx.com/friends/123表示獲取ID為123的會員的好友列表淋肾。如果不加id就表示獲取所有會員的好友列表。

POST:http://www.xxx.com/friends/123表示為指定ID為123的會員新增好友爸邢。其他的操作類似就不舉例了樊卓。

???? RESTful API還有其他一些規(guī)范。1:應該將API的版本號放入URL杠河。GET:http://www.xxx.com/v1/friend/123碌尔〗焦迹或者將版本號放在HTTP頭信息中。我個人覺得要不要版本號取決于自己開發(fā)團隊的習慣和業(yè)務的需要唾戚,不是強制的柳洋。2:URL中只能有名詞而不能有動詞,操作的表達是使用HTTP的動詞GET,POST,PUT,DELETEL叹坦。URL只標識資源的地址熊镣,既然是資源那就是名詞了。3:如果記錄數(shù)量很多募书,服務器不可能都將它們返回給用戶绪囱。API應該提供參數(shù),過濾返回結果锐膜。?limit=10:指定返回記錄的數(shù)量毕箍、?page=2&per_page=100:指定第幾頁弛房,以及每頁的記錄數(shù)道盏。

原文:https://blog.csdn.net/hjc1984117/article/details/77334616

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市文捶,隨后出現(xiàn)的幾起案子荷逞,更是在濱河造成了極大的恐慌,老刑警劉巖粹排,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件种远,死亡現(xiàn)場離奇詭異,居然都是意外死亡顽耳,警方通過查閱死者的電腦和手機坠敷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來射富,“玉大人膝迎,你說我怎么就攤上這事∫群模” “怎么了限次?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長柴灯。 經常有香客問我卖漫,道長,這世上最難降的妖魔是什么赠群? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任羊始,我火速辦了婚禮,結果婚禮上查描,老公的妹妹穿的比我還像新娘突委。我一直安慰自己速警,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布鸯两。 她就那樣靜靜地躺著闷旧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钧唐。 梳的紋絲不亂的頭發(fā)上忙灼,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音钝侠,去河邊找鬼该园。 笑死,一個胖子當著我的面吹牛帅韧,可吹牛的內容都是我干的里初。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼忽舟,長吁一口氣:“原來是場噩夢啊……” “哼双妨!你這毒婦竟也來了?” 一聲冷哼從身側響起叮阅,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤刁品,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浩姥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挑随,經...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年勒叠,在試婚紗的時候發(fā)現(xiàn)自己被綠了兜挨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡眯分,死狀恐怖拌汇,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情颗搂,我是刑警寧澤担猛,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站丢氢,受9級特大地震影響傅联,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疚察,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一蒸走、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧貌嫡,春花似錦比驻、人聲如沸该溯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恩急,卻和暖如春掸掸,著一層夾襖步出監(jiān)牢的瞬間氯庆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工扰付, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留堤撵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓羽莺,卻偏偏與公主長得像实昨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盐固,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內容