定義
1、什么是Rest?
REST即表述性狀態傳遞(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構風格。它是一種針對網絡應用的設計和開發方式,可以降低開發的復雜性,提高系統的可伸縮性。
目前在三種主流的Web服務實現方案中,因為REST模式的Web服務與復雜的SOAP和XML-RPC對比來講明顯的更加簡潔,越來越多的web服務開始采用REST風格設計和實現。
2、什么是RestFul API?
Restful是一種軟件設計風格,它遵循Rest約束條件和原則。
RestFul API 基于Rest理論,輕量級以及通過 HTTP 直接傳輸數據的特性,通常來說,使用JSON描述數據,可以使用各種語言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])實現客戶端。
RestFul API基于資源,每個資源都有一個地址。資源的增刪改查只是對于資源狀態的改變。使用HTTP動詞來操作資源,包括 HTTP GET、POST、PUT、DELETE,還可能包括 HEADER 和 OPTIONS。并且使用RestFul API每個動詞都有明確的意義,不能隨便使用。
3、RestFul API實踐
3.1操作
- POST:創建
- PUT:更新
- GET:查詢
- DELETE:刪除
3.2狀態碼,錯誤碼,統一錯誤描述
一般每個操作,都會對應一個狀態碼,這個狀態碼有框架設計,如get:200 post:201
- 404 當前請求的頁面沒有找到(RestFul API資源沒有找到)
- 400 參數錯誤(驗證層參數校驗沒有通過)
- 200 一個get請求查詢成功
- 201 一個post 創建資源成功
- 202 一個put更新資源成功(特別:在http應用中,202表示發送請求成功,服務器暫時沒有處理)
- 401 未授權
- 403 當前資源被禁止
- 500 服務器錯誤
錯誤碼:自定義的錯誤id號
同意錯誤描述:錯誤碼、錯誤信息、當前URL
4、使用Token令牌來授權和身份驗證
5、開發
參考:
1、豆瓣API
https://developers.douban.com/wiki/?title=api_v2
2、