軟件開(kāi)發(fā)中常說(shuō)的RESTful風(fēng)格API究竟是什么?
軟件編程指南 2018-07-03 06:44:00
一說(shuō)到REST,我想大家的第一反應(yīng)就是“啊,就是那種前后臺(tái)通信方式。”但是在要求詳細(xì)講述它所提出的各個(gè)約束,以及如何開(kāi)始搭建REST服務(wù)時(shí),卻很少有人能夠清晰地說(shuō)出它到底是什么,需要遵守什么樣的準(zhǔn)則。在您將看到的這一篇文章中,我們將對(duì)REST,尤其是基于HTTP的REST服務(wù)進(jìn)行詳細(xì)地介紹。通過(guò)這些文章,您不僅可以了解到什么是REST,更能清晰地了解到您在編寫(xiě)REST服務(wù)時(shí)所需要遵守的各個(gè)守則,設(shè)計(jì)RESTful API時(shí)需要考慮的各種因素以及實(shí)現(xiàn)過(guò)程中可能遇到的問(wèn)題等內(nèi)容。
目錄
- Rest關(guān)鍵詞解釋
- REST概念
- REST遇到的問(wèn)題及示例
- 總結(jié)
一. Rest關(guān)鍵詞解釋
- REST(Representational State Transfer):表述性狀態(tài)轉(zhuǎn)移
- Rest是web服務(wù)的一種架構(gòu)風(fēng)格,一種輕量級(jí),跨平臺(tái),跨語(yǔ)言的架構(gòu)設(shè)計(jì);
二. Rest概念
在RESTful架構(gòu)中,每個(gè)網(wǎng)址代表一種資源(resource),所有網(wǎng)址請(qǐng)求接口中不能有動(dòng)詞,只能有名詞,這點(diǎn)和數(shù)據(jù)庫(kù)設(shè)計(jì)風(fēng)格很像。
那么可能有同學(xué)會(huì)問(wèn)了?動(dòng)詞怎么來(lái)表示呢?
常用的HTTP動(dòng)詞有五個(gè),對(duì)應(yīng)sql中命令。也就是說(shuō)我們定義接口url中一般不會(huì)出現(xiàn)動(dòng)詞,都是使用名詞,而動(dòng)詞使用HTTP請(qǐng)求方式來(lái)表示。
- GET(SELECT):從服務(wù)器取出資源(一項(xiàng)或多項(xiàng))。
- POST(CREATE):在服務(wù)器新建一個(gè)資源。
- PUT(UPDATE):在服務(wù)器更新資源(客戶(hù)端提供改變后的完整資源)。
- PATCH(UPDATE):在服務(wù)器更新資源(客戶(hù)端提供改變的屬性)。
- DELETE(DELETE):從服務(wù)器刪除資源。
三. REST遇到的問(wèn)題
復(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ù)類(lèi)公司都有自己的風(fēng)格,這個(gè)參考就好
例子
- GET /zoos:列出所有動(dòng)物園
- POST /zoos:新建一個(gè)動(dòng)物園
- GET /zoos/ID:獲取某個(gè)指定動(dòng)物園的信息
- PUT /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的全部信息)
- PATCH /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的部分信息)
- DELETE /zoos/ID:刪除某個(gè)動(dòng)物園
- GET /zoos/ID/animals:列出某個(gè)指定動(dòng)物園的所有動(dòng)物
- DELETE /zoos/ID/animals/ID:刪除某個(gè)指定動(dòng)物園的指定動(dòng)物
總結(jié)
當(dāng)你看到這里,這邊文章已經(jīng)講完了,相信你已經(jīng),對(duì)什么是Restful風(fēng)格已經(jīng)有一個(gè)自己的概念。但是小編還是要強(qiáng)調(diào)一點(diǎn)的是。請(qǐng)務(wù)必記住: REST是一種跨平臺(tái)、跨語(yǔ)言的架構(gòu)風(fēng)格。而不是已經(jīng)技術(shù)。所以對(duì)于剛?cè)胄械拈_(kāi)發(fā)者,請(qǐng)千萬(wàn)不要害怕。其實(shí)就這么簡(jiǎn)單。