Rest - Safe/Idempotent method
Rest API 的方法依其性質可以被劃分為 Safe method 或是 Idempotent method。
Safe method 也就是安全的方法,表示該方法不會對資源進行任何的修改,且其結果可以被快取。GET 與 HEAD 屬於這類方法。
Idempotent method 也就是冪等方法,表示該方法重複調用的結果都是相同的, GET、PUT、DELETE、HEAD、OPTIONS 屬於這類方法。
POST、PATCH 則兩類方法都不是。
了解 HTTP Method 屬於 Safe method 還是 Idempotent method,可讓我們清楚識別 API 應該使用哪種 HTTP method,也可以了解 HTTP method 在實作上所應該做的處理。
最後附上對應總表:
Method | Safe | Indempotent |
---|---|---|
GET | Y | Y |
POST | N | N |
PUT | N | Y |
DELETE | N | Y |
PATCH | N | N |
HEAD | Y | Y |
OPTIONS | Y | Y |
Link
- 程式設計 - 簡明RESTful API設計要點 - Twincl
- 哪些是冪等或/且安全的方法? - RESTful 手冊
- RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
- HTTP Verbs: 談 POST, PUT 和 PATCH 的應用 | ihower { blogging }
- What are idempotent and/or safe methods? - The RESTful cookbook
- HTTP Methods [ RESTful APIs Verbs ] – REST API Tutorial
- Idempotent REST APIs – REST API Tutorial