HTTP POST請求最常用于創建新資源。當嚴格按照REST的術語進行交談時,POST方法用于在資源集合中創建新資源。
創建成功后,將返回HTTP代碼201,創建資源的地址也會在“位置”標頭中傳輸。
以下是HTTP POST請求的一些示例:
HTTP帖子 - http://www.domain/api/users - 創建用戶
HTTP帖子 - http://www.domain/api/posts - 創建帖子
HTTP帖子 - http://www.domain/api/posts/{postId}/comments - 為帖子創建新評論,id = postId
使用PUT API主要用于更新現有資源(如果資源不存在,則API可能會決定是否創建新資源)。如果PUT API創建了新資源,原始服務器必須通過HTTP響應代碼201(已創建)響應通知用戶代理,如果現有資源被修改,則應發送200(OK)或204(無內容)響應代碼,以指示請求成功完成。
以下是HTTP Put請求的一些示例:
HTTP PUT -?http://www.domain/api/users/{username} -?更新用戶
HTTP PUT -?http://www.domain/api/posts/{id}?- 按id更新帖子
HTTP PUT -?http://www.domain/api/posts/{postId}/comments/{id}?- 如果它屬于帶有id = postId的帖子,則通過id更新評論
POST和PUT API之間的區別可以在請求URI中觀察到。POST請求是在資源集合上進行的,而PUT請求是在單個資源上進行的。
使用DELETE API刪除資源(由Request-URI標識)。
如果響應包括描述狀態的實體,則DELETE請求的成功響應應該是HTTP響應代碼200(OK),如果操作已排隊,則為202(已接受),如果已執行操作但響應不包括實體,則應為204(無內容)。
以下是HTTP刪除請求的一些示例:
刪除 http://www.domain/api/users/{用戶名} - 刪除用戶
刪除 http://www.domain/api/posts/{id} - 刪除帖子
刪除 http://www.domain/api/posts/{postId}/comments/{id}-如果評論屬于id = postId的帖子,則刪除id評論
HTTP PATCH請求是對資源進行部分更新。如果您看到PUT請求也修改了資源實體,因此為了更清楚,PATCH方法是部分更新現有資源的正確選擇,并且僅當您要完全替換資源時才應使用PUT。
示例:
更新電子郵件的示例補丁請求將如下:
HTTP補丁/用戶/1
[
{ “op”: “replace”, “path”: “/email”, “value”: “new.email@example.org” }
]
當客戶端需要完全替換現有資源時,他們可以使用PUT。當他們進行部分更新時,他們可以使用HTTP PATCH。
例如,在更新資源的單個字段時,發送完整的資源表示可能很麻煩,并會使用大量不必要的帶寬。在這種情況下,PATCH的語義更有意義。
這里需要考慮的另一個重要方面是冪等;PUT是冪等;PATCH可以,但不需要。因此,根據我們正在實施的操作的語義,我們也可以根據這個特征選擇一個或另一個。
用于用戶管理應用程序的REST API–以下五個用于用戶資源的REST API:
英文原文: REST API – HTTP Methods
官方HTTP Mehods說明