什麼是RESTful風格的API
阿新 • • 發佈:2018-12-12
一、含義
什麼是restful,引用百度百科中的解釋就是:一種軟體架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。
二、傳統API和RESTfulAPI有何差異
傳統API | RESTfulAPI | |||
查詢 | /user/query?name=hu | GET | /user?name=hu | GET |
刪除 | /user/delete?id = 1 | GET | /user/1 | DELETE |
修改 | /user/update?id=1&name=liu | POST | /user/1 | PUT |
新增 | /user/create?name=tom | POST | /user | POST |
1.傳統的介面用URL來描述行為,RESTful用url來描述資源,針對的是資源。從上面表中可以看出,傳統API就是在url中去定義行為,從路徑中可以看出這個API是做的什麼操作;而RESTfulAPI的url是用來描述資源,id=1的user是一個資源,假設我們的資料庫中有100個user物件,就對應著100個資源。
2.使用HTTP方法來描述行為。使用HTTP狀態碼來表示不同的結果。RESTful API是用HTTP的方法來描述行為,GET——請求表示查詢,DELETE——請求表示刪除,PUT——請求表示修改,POST——請求表示新增;傳統的API介面,不論呼叫成功與否,返回的狀態碼可能都是200,只是在返回的資料中,有某個欄位判斷是否呼叫成功;而RESTfulAPI是通過HTTP狀態碼來表示不同的結果,比如:200——表示呼叫成功,400——表示呼叫失敗,500——表示異常等。
3.使用json互動資料。傳統的API可能使用字串拼接,可能使用xml等各種形式進行資料的交換;而在RESTful API中都是使用json進行資料的互動。
4.restful只是一種風格,並不是強制的標準。RESTful只是一種風格,就好像在生活中的道德約束一樣,走路闖紅燈是不對的,但是你偶爾闖了紅燈,也不會有警察抓你。
三、RESTful成熟度圖
一般在專案都是用到了Level2的級別,線上專案中還未見到有Level3級別的。