什么是Restfull API
Restfull API 從字面就可以知道,他是rest式的接口,所以就要先了解什么是rest
rest 不是一個技術,也不是一個協議
rest 指的是一組架構約束條件和原則,提供了一個新的架構設計思路,滿足這些約束條件和原則的應用程序或設計就是 RESTful
在REST規則中,有兩個基礎概念:對象、行為
對象就是我們要操作的對象,例如添加用戶的操作,那么對象就是user
行為有4種常用的:查看、創建、編輯、刪除
rest的提出者很巧妙的利用http現有方法來對應這4種行為:
GET - 查看
POST - 創建
PUT - 編輯
DELETE - 刪除
為什么用Restfull API
例如常用的MVC結構中,前后端的融合還是比較緊密的,用戶訪問一個網址,例如 http://test.com/a.php,請求先發送到動態php處理,php中處理邏輯,然后使用頁面模板來輸出顯示給用戶
以前用戶主要就是用瀏覽器訪問,這樣的結構沒什么問題,但現在移動客戶端越來越重要,顯然不能使用這個結構,需要為移動客戶端開發接口
RESTful API 就可以通過一套統一的接口為所有客戶端提供web服務,實現前后端分離
再比如在一個大型系統中,可能是多種開發語言一起工作,使用 RESTful API 就可以完全不關心開發語言,以標准的接口來協同工作
Restfull API是怎么定義的
下面通過幾個示例了解下Restfull API的定義方式
(1)查看所有任務
GET http://test.com/tasks
(2)新建一個任務
POST http://test.com/tasks
Data: title = Foobar
(3)根據ID查看一個任務
GET http://test.com/tasks/123
(4)更新任務
PUT http://test.com/tasks/123
Data: title = New
(5)刪除任務
DELETE http://test.com/tasks/123
可以看到Restfull API的風格非常簡潔、統一、明確
例如查看操作,用普通方式的話,定義方式是任意的,如:
http://test.com/listall_tasks
'listall_tasks' 就是隨意定義的,通過這個名字才可以看出是查看全部的意思,如果開發人員用了一個沒有明確意義的名字,那就需要看文檔或者代碼才能知道含義了
而Restfull API 通過 GET 方法就知道是查看操作,通過tasks就知道查看的對象是什么