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