1. 程式人生 > WINDOWS開發 >什麼是Restful API?

什麼是Restful API?

一. 定義
Rest的全稱是Representational State Transfer,2000年由Roy Fielding發表在他的博士論文中,首次提出了Restful的概念。Restful 做為一種介面的設計規則,基於HTTP協議 ,可以使用XML格式 或JSON格式傳輸資料。對於使用restful 這套規則定義開發的介面,我們稱之為Restful API。
關於Restful的具體表現形式,簡單可以用一句話概括:URL定位資源,使用HTTP請求(GET、POST、PUT、DELETE等)對資源進行操作。

二. 設計原則與規範
Restfu是典型的基於HTTP的協議 ,它有哪些設計 原則和規範呢?

  1. URL與資源:資源表示網路上的一個實體物件,可以是一個資產、一首歌曲或一種服務,資源總是以一定的格式來表現自己。通過定義一個URL指向資源,要訪問資源時,只需要通過該資源所屬的URL進行請求訪問即可。一般來說,介面名稱只能用名詞,不可以用動詞,根據HTTP的請求來進行操作,這樣可以不在URL不暴露操作方式。
    例如:http://www.kk.com/api/books 表示一個資源(書本)物件
  2. 統一介面規範:Restful 架構應該遵循統一介面原則 ,統一介面包含了一組固定的預定義操作,不管是什麼樣的資源,都通過方式進行資源訪問 。在Restful API架構中,客戶端通過HTTP協議,使用GET、POST、PUT和DELETE4種請求方式對服務端資源進行操作,GET用於獲取資源,POST用來新建資源,PUT用來更新資源,DELETE用於刪除資源。
  3. 無狀態:從客戶端到服務端的每個請求都是獨立 ,請求中必須包含需要的所有資訊,這也代表伺服器不需要儲存任何上下文資訊,對於客戶端來說,第一次請求和第100次請求都是相同的。在Restful 架構中,儘量避免使用session的方式,而是由客戶端自己標識會話狀態(token)。
  4. 除以上的操作規範外,另外還有一些要求, 包括:
    url不能使用大寫字母;
    不使用副檔名,如.php等;
    可在url中增加api版本號等;
    文字返回必須為Json格式。

三. URL格式標準
下面我們通過幾個示例來了解下Restful API的格式定義方式

  1. 檢視
    GET http://api.xxx.com/users 檢視所有使用者資訊
    GET http://api.xxx.com/users/id 檢視該id的使用者資訊
    GET http://api.xxx.com/users?age=20& 根據搜尋條件(age等於20),顯示符合條件的使用者資訊

  2. 建立
    POST http://api.xxx.com/users
    建立使用者,可在DATA處帶需要的引數
  3. 更新
    PUT http://api.xxx.com/users/id?name=‘張三‘&age=20 修改該id的使用者資訊(name和age)
  4. 刪除
    DELETE http://api.xxx.com/users/id 刪除該id的使用者資訊

四. 結尾
Restful Api做為目前比較火的一種架構,做WEB開發的同學有必要知曉。本篇文章主要介紹了restful api的基本概念,大家看完可以對該架構有初步的瞭解。
但在實際開發中應該如何來實現呢?將會下篇文章中介紹,文章會通過python的Django框架展示程式碼的開發方法,歡迎關注 。