1. 程式人生 > >什麼是RESTful風格的API

什麼是RESTful風格的API

一、含義

什麼是restful,引用百度百科中的解釋就是:一種軟體架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。

二、傳統API和RESTfulAPI有何差異

傳統api和RESTful API對比
  傳統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級別的。