一個架構(gòu)符合REST(REpresentational State Transfer)原則,就稱它為RESTful架構(gòu)。
資源 (Resources)
URI (Uniform Resource Identifiers) 統(tǒng)一資源標示符
URI = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]
URI規(guī)范:
- URI不包含動詞,使用名詞復數(shù)。
- URI不使用大寫。
- URI層級不要太深。
URL(Uniform Resource Locator) 統(tǒng)一資源定位符(URI的實現(xiàn))
對于REST API來說一個資源對應(yīng)一個唯一的URI(URL)
表現(xiàn)(Representation)
HTTP請求的頭信息中,用Accept和Content-Type標示。
狀態(tài)轉(zhuǎn)化(State Transfer)
GET:獲取資源
GET /zoos
GET /zoos/1
GET /zoos/1/employees
GET /zoos/1/employeessortby=name&order=ascPOST:新建資源(也可以更新資源)
POST /animals 新增動物
POST /zoos/1/employees 新增動物園1雇員PUT:更新單個資源 全量更新
PUT /animals/1
PUT /zoos/1DELETE:刪除資源
DELETE /zoos/1/animals //刪除id為1的動物園內(nèi)的所有動物
常見異常返回碼
- 400 bad request 常用在參數(shù)校驗
- 401 unauthorized 未經(jīng)驗證的用戶,常見于未登錄。如果經(jīng)過驗證后依然沒權(quán)限,應(yīng)該 403(即 authentication 和 authorization 的區(qū)別)。
- 403 forbidden 無權(quán)限
- 404 not found 資源不存在
- 500 internal server error 代碼邏輯錯誤導致,比如數(shù)據(jù)庫連接失敗、空指針異常、除0錯誤
異步任務(wù)
由于互聯(lián)網(wǎng)通信 高延時(high latency)、高并發(fā)等特點 異步任務(wù)派上大用場。
- 先返回任務(wù)創(chuàng)建成功
- 客戶端輪詢?nèi)蝿?wù)狀態(tài)
規(guī)范是提高效率的利器