什麼是Restful API?
阿新 • • 發佈:2020-04-24
一. 定義
Rest的全稱是Representational State Transfer,2000年由Roy Fielding發表在他的博士論文中,首次提出了Restful的概念。Restful 做為一種介面的設計規則,基於HTTP協議 ,可以使用XML格式 或JSON格式傳輸資料。對於使用restful 這套規則定義開發的介面,我們稱之為Restful API。
關於Restful的具體表現形式,簡單可以用一句話概括:URL定位資源,使用HTTP請求(GET、POST、PUT、DELETE等)對資源進行操作。
Rest的全稱是Representational State Transfer,2000年由Roy Fielding發表在他的博士論文中,首次提出了Restful的概念。Restful 做為一種介面的設計規則,基於HTTP協議 ,可以使用XML格式 或JSON格式傳輸資料。對於使用restful 這套規則定義開發的介面,我們稱之為Restful API。
關於Restful的具體表現形式,簡單可以用一句話概括:URL定位資源,使用HTTP請求(GET、POST、PUT、DELETE等)對資源進行操作。
二. 設計原則與規範
Restfu是典型的基於HTTP的協議 ,它有哪些設計 原則和規範呢?
- URL與資源:資源表示網路上的一個實體物件,可以是一個資產、一首歌曲或一種服務,資源總是以一定的格式來表現自己。通過定義一個URL指向資源,要訪問資源時,只需要通過該資源所屬的URL進行請求訪問即可。一般來說,介面名稱只能用名詞,不可以用動詞,根據HTTP的請求來進行操作,這樣可以不在URL不暴露操作方式。
- 統一介面規範:Restful 架構應該遵循統一介面原則 ,統一介面包含了一組固定的預定義操作,不管是什麼樣的資源,都通過方式進行資源訪問 。在Restful API架構中,客戶端通過HTTP協議,使用GET、POST、PUT和DELETE4種請求方式對服務端資源進行操作,GET用於獲取資源,POST用來新建資源,PUT用來更新資源,DELETE用於刪除資源。
- 無狀態:從客戶端到服務端的每個請求都是獨立 ,請求中必須包含需要的所有資訊,這也代表伺服器不需要儲存任何上下文資訊,對於客戶端來說,第一次請求和第100次請求都是相同的。在Restful 架構中,儘量避免使用session的方式,而是由客戶端自己標識會話狀態(token)。
- 除以上的操作規範外,另外還有一些要求, 包括:
url不能使用大寫字母;
不使用副檔名,如.php等;
可在url中增加api版本號等;
文字返回必須為Json格式。
三. URL格式標準
下面我們通過幾個示例來了解下Restful API的格式定義方式
-
檢視
GET http://api.xxx.com/users 檢視所有使用者資訊
GET http://api.xxx.com/users/id 檢視該id的使用者資訊
GET http://api.xxx.com/users?age=20& 根據搜尋條件(age等於20),顯示符合條件的使用者資訊 - 建立
POST http://api.xxx.com/users - 更新
PUT http://api.xxx.com/users/id?name=‘張三‘&age=20 修改該id的使用者資訊(name和age) - 刪除
DELETE http://api.xxx.com/users/id 刪除該id的使用者資訊
四. 結尾
Restful Api做為目前比較火的一種架構,做WEB開發的同學有必要知曉。本篇文章主要介紹了restful api的基本概念,大家看完可以對該架構有初步的瞭解。
但在實際開發中應該如何來實現呢?將會下篇文章中介紹,文章會通過python的Django框架展示程式碼的開發方法,歡迎關注 。