RESTful 個人理解

Echos發表於2018-12-25

最近接觸了一下前後端開發的專案,不過還在學習當中,想通過博文來總結一下API的統一機制,前後端分離帶來的好處我就不詳細說了,百度上都有介紹。

那麼,什麼是RESTful api呢?

總的來說就是現在網際網路比較成熟的一套應用程式的API設計理論,這裡我舉一個例子吧。

比如說某電影網站是這樣:http://api.dianying.com/v2/movie/id 這裡面就有幾個東西可以瞭解,比如這個v2,這個是API的版本號,版本號有V1或者V2,然後在RESTful中,每個網址代表一種資源,所以網址中不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的表格名對應,最後這個/id就是你要找的電影,這裡你也可以理解為它的路徑設計,方便你尋找你要的資源。

然後API中的操作型別,一般是HTTP動詞,常見的有五個:
1.GET(SELECT):從伺服器取出資源(一項或多項)。
2.POST(CREATE):在伺服器新建一個資源。
3.PUT(UPDATE):在伺服器更新資源(客戶端提供改變後的完整資源)。
4.PATCH(UPDATE):在伺服器更新資源(客戶端提供改變的屬性)。
5.DELETE(DELETE):從伺服器刪除資源。

還有兩個不常用的我給忘了,可以百度找找。然後我在通過這個電影API舉幾個例子:
1.GET /movie:列出所有電影
2.POST /movie:新建一個電影
3.GET /movie/id:獲取某個指定電影的資訊
4.PUT /movie/id:更新某個指定電影的資訊
5.PATCH /movie/id:更新某個指定電影的資訊
6.DELETE /movie/id:刪除某個電影
7.GET /movie/id/author:列出某個指定電影的作者
8.DELETE /movie/id/author/id:刪除某個指定電影的作者

當我們需要的數量太多了,就可以用過濾的方法,比如:
1.movie/id?limit=10 指定返回記錄的數量
2.movie/id?offset=10:指定返回記錄的開始位置
方法很多,具體的不多描述。

當然,還有我們的狀態碼!
一般是伺服器返回的程式碼狀態和提示資訊,比如以下返回資訊:
200 OK - [GET]:伺服器成功返回使用者請求的資料,該操作是冪等的。
401 Unauthorized - []:表示使用者沒有許可權。
403 Forbidden - [
] 表示使用者得到授權(與401錯誤相對),但是訪問是被禁止的。
404 NOT FOUND - []:使用者發出的請求針對的是不存在的記錄。
500 INTERNAL SERVER ERROR - [
]:伺服器發生錯誤,使用者將無法判斷髮出的請求是否成功。

好像也有很多的樣子,大概就只看了這些,今天就總結到這裡吧。

相關文章