軟件開發(fā)中常說的RESTful風(fēng)格API究竟是什么铃剔?
軟件編程指南 2018-07-03 06:44:00
一說到REST干旁,我想大家的第一反應(yīng)就是“啊污抬,就是那種前后臺通信方式沐鼠〈蒈睿”但是在要求詳細(xì)講述它所提出的各個(gè)約束,以及如何開始搭建REST服務(wù)時(shí)稀蟋,卻很少有人能夠清晰地說出它到底是什么煌张,需要遵守什么樣的準(zhǔn)則。在您將看到的這一篇文章中退客,我們將對REST骏融,尤其是基于HTTP的REST服務(wù)進(jìn)行詳細(xì)地介紹。通過這些文章萌狂,您不僅可以了解到什么是REST档玻,更能清晰地了解到您在編寫REST服務(wù)時(shí)所需要遵守的各個(gè)守則,設(shè)計(jì)RESTful API時(shí)需要考慮的各種因素以及實(shí)現(xiàn)過程中可能遇到的問題等內(nèi)容茫藏。
目錄
- Rest關(guān)鍵詞解釋
- REST概念
- REST遇到的問題及示例
- 總結(jié)
一. Rest關(guān)鍵詞解釋
- REST(Representational State Transfer):表述性狀態(tài)轉(zhuǎn)移
- Rest是web服務(wù)的一種架構(gòu)風(fēng)格,一種輕量級,跨平臺,跨語言的架構(gòu)設(shè)計(jì);
二. Rest概念
在RESTful架構(gòu)中误趴,每個(gè)網(wǎng)址代表一種資源(resource),所有網(wǎng)址請求接口中不能有動詞务傲,只能有名詞,這點(diǎn)和數(shù)據(jù)庫設(shè)計(jì)風(fēng)格很像凉当。
那么可能有同學(xué)會問了?動詞怎么來表示呢树灶?
常用的HTTP動詞有五個(gè),對應(yīng)sql中命令纤怒。也就是說我們定義接口url中一般不會出現(xiàn)動詞,都是使用名詞,而動詞使用HTTP請求方式來表示天通。
- GET(SELECT):從服務(wù)器取出資源(一項(xiàng)或多項(xiàng))泊窘。
- POST(CREATE):在服務(wù)器新建一個(gè)資源。
- PUT(UPDATE):在服務(wù)器更新資源(客戶端提供改變后的完整資源)像寒。
- PATCH(UPDATE):在服務(wù)器更新資源(客戶端提供改變的屬性)烘豹。
- DELETE(DELETE):從服務(wù)器刪除資源。
三. REST遇到的問題
復(fù)數(shù)形式怎么表示?
- https://api.example.com/v1/zoos
- https://api.example.com/v1/animals
- https://api.example.com/v1/employees
版本怎么表示(演示中我們參考github的風(fēng)格)筷笨?
其實(shí)一般互聯(lián)網(wǎng)技術(shù)類公司都有自己的風(fēng)格,這個(gè)參考就好
例子
- GET /zoos:列出所有動物園
- POST /zoos:新建一個(gè)動物園
- GET /zoos/ID:獲取某個(gè)指定動物園的信息
- PUT /zoos/ID:更新某個(gè)指定動物園的信息(提供該動物園的全部信息)
- PATCH /zoos/ID:更新某個(gè)指定動物園的信息(提供該動物園的部分信息)
- DELETE /zoos/ID:刪除某個(gè)動物園
- GET /zoos/ID/animals:列出某個(gè)指定動物園的所有動物
- DELETE /zoos/ID/animals/ID:刪除某個(gè)指定動物園的指定動物
總結(jié)
當(dāng)你看到這里憔鬼,這邊文章已經(jīng)講完了,相信你已經(jīng)胃夏,對什么是Restful風(fēng)格已經(jīng)有一個(gè)自己的概念轴或。但是小編還是要強(qiáng)調(diào)一點(diǎn)的是。請務(wù)必記住: REST是一種跨平臺仰禀、跨語言的架構(gòu)風(fēng)格照雁。而不是已經(jīng)技術(shù)。所以對于剛?cè)胄械拈_發(fā)者,請千萬不要害怕答恶。其實(shí)就這么簡單饺蚊。