Restful API是什麼?初探Restful API?爲什麼要用Restful API?傳統接口寫法與Restful API接口寫法區別,帶着這些問題我們來具體瞭解下Restful API:
目錄
什麼是Restful API?
Restful API 從字面就可以知道,他是rest式的接口,所以就要先了解什麼是rest。rest 不是一個技術,也不是一個協議。rest 指的是一組架構約束條件和原則,提供了一個新的架構設計思路,滿足這些約束條件和原則的應用程序或設計就是 RESTful。在REST規則中,有兩個基礎概念:對象、行爲。對象就是我們要操作的對象,例如添加用戶的操作,那麼對象就是user
行爲有4種常用的:查看、創建、編輯、刪除
rest的提出者很巧妙的利用http現有方法來對應這4種行爲:
- GET - 查看
- POST - 創建
- PUT - 編輯
- DELETE - 刪除
爲什麼用Restful API?
例如常用的MVC結構中,前後端的融合還是比較緊密的,用戶訪問一個網址,例如:http://www.91tuoke.com/a.php,請求先發送到動態php處理,php中處理邏輯,然後使用頁面模板來輸出顯示給用戶。
以前用戶主要就是用瀏覽器訪問,這樣的結構沒什麼問題,但現在移動客戶端越來越重要,顯然不能使用這個結構,需要爲移動客戶端開發接口。
RESTful API 就可以通過一套統一的接口爲所有客戶端提供web服務,實現前後端分離。
再比如在一個大型系統架構設計中,可能是多種開發語言一起工作,使用 RESTful API 就可以完全不關心開發語言,以標準的接口來協同工作
Restful API是怎麼定義的?定義規則方法:
下面通過幾個示例瞭解下Restful API的定義方式,其實就是操作:
添加(POST)
查詢(GET)
更新編輯修改(GET/POST/PUT)
刪除(DELETE)
(1)查看所有任務
GET http://www.gookang.com/tasks
(2)新建一個任務
POST http://www.gookang.com/tasks
傳遞Data: title = Foobar
(3)根據ID查看一個任務
GET http://www.gookang.com/tasks/123
(4)更新任務
PUT http://www.gookang.com/tasks/123
傳遞Data: title = New
(5)刪除任務
DELETE http://www.nongyejing.com/tasks/123
可以看到Restful API的風格非常簡潔、統一、明確
例如查看操作,用普通方式的話,定義方式是任意的,如:
http://www.haopin.org/listall_tasks
‘listall_tasks’ 就是隨意定義的,通過這個名字纔可以看出是查看全部的意思,如果開發人員用了一個沒有明確意義的名字,那就需要看文檔或者代碼才能知道含義了
而Restful API 通過 GET 方法就知道是查看操作,通過tasks就知道查看的對象是什麼。
傳統接口寫法與Restful API 接口寫法區別:
說到API接口設計有的喜歡用Web Service,有的喜歡用WCF,當然也有還在用最原始的ashx,aspx頁面的。無論採用什麼方式能很好的滿足業務需求就ok,但是不同的方式在擴展性、易用性,可維護性都有一定的差別。如今移動移動互聯網正如火如荼,各種終端,各種平臺,各種開發語言也是層出不窮,所以要設計出能滿足這些要求的API也就顯得至關重要了。
一個文件操作接口,傳統模式:
api/getfile.php - 獲取文件信息,下載文件
api/uploadfile.php - 上傳創建文件
api/deletefile.php - 刪除文件
RESTful:
api/file 只需要這一個接口
GET 方式請求 api/file - 獲取文件信息,下載文件
POST 方式請求 api/file - 上傳創建文件
DELETE 方式請求 api/file - 刪除某個文件
這樣一來簡化了API接口的操作性和統一性。