1. 程式人生 > >我理解的restful風格的web api

我理解的restful風格的web api

注:本想法基於C# mvc來說,並不是針對所有的程式語言。

由於開發工具的限制,只能用mvc3開發api,這樣就不能用mvc4的web api了,特意研究了下mvc和web api的區別,最後發現在新版的mvc裡面,他們倆兒竟然合併了,老懷欣慰啊。

HTTP動詞
對於資源的具體操作型別,由HTTP動詞表示。
常用的HTTP動詞有下面五個(括號裡是對應的SQL命令)。
GET(SELECT):從伺服器取出資源(一項或多項)。
POST(CREATE):在伺服器新建一個資源。
PUT(UPDATE):在伺服器更新資源(客戶端提供改變後的完整資源)。
PATCH(UPDATE):在伺服器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從伺服器刪除資源。

還有兩個不常用的HTTP動詞。
HEAD:獲取資源的元資料。
OPTIONS:獲取資訊,關於資源的哪些屬性是客戶端可以改變的。

下面是一些例子。
GET /zoos:列出所有動物園
POST /zoos:新建一個動物園
GET /zoos/ID:獲取某個指定動物園的資訊
PUT /zoos/ID:更新某個指定動物園的資訊(提供該動物園的全部資訊)
PATCH /zoos/ID:更新某個指定動物園的資訊(提供該動物園的部分資訊)
DELETE /zoos/ID:刪除某個動物園
GET /zoos/ID/animals:列出某個指定動物園的所有動物
DELETE /zoos/ID/animals/ID:刪除某個指定動物園的指定動物

上面的例子是抄的。

這些動詞僅供參考,個人覺得restful的核心就是簡便而不是什麼都往restful上面靠,這樣沒有意義,至於返回狀態碼,有時候是多此一舉,如果已經聯通了,引數不對就直接返回引數錯誤就好了,如果沒有連通,你也沒有必要返回錯誤資訊了。