RESTful 架構之RESTful API詳解

2021-09-26 02:23:27 字數 2201 閱讀 2254

rest全稱是representational state transfer,中文意思是表述(編者注:通常譯為表徵)性狀態轉移。 它首次出現在2023年roy fielding的博士**中,roy fielding是http規範的主要編寫者之一。 他在**中提到:「我這篇文章的寫作目的,就是想在符合架構原理的前提下,理解和評估以網路為基礎的應用軟體的架構設計,得到乙個功能強、效能好、適宜通訊的架構。rest指的是一組架構約束條件和原則。」 如果乙個架構符合rest的約束條件和原則,我們就稱它為restful架構。

rest本身並沒有創造新的技術、元件或服務,而隱藏在restful背後的理念就是使用web的現有特徵和能力, 更好地使用現有web標準中的一些準則和約束。雖然rest本身受web技術的影響很深, 但是理論上rest架構風格並不是繫結在http上,只不過目前http是唯一與rest相關的例項。 所以我們這裡描述的rest也是通過http實現的rest。

近年來移動網際網路的發展,前端裝置層出不窮(手機、平板、桌面電腦、其他專用裝置…),因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊,於是restful誕生了,它可以通過一套統一的介面為 web,ios和android提供服務。

get:讀取(read)

post:新建(create)

put:更新(update)

patch:更新(update),通常是部分更新

delete:刪除(delete)

以下是乙個例子

@restcontroller 

public class usercontroller

public string postuser(@modelattribute user user)

public user getuser(@pathvariable long id) "的get請求,用來獲取url中id值的user資訊

// url中的id可通過@pathvariable繫結到函式的引數中

return users.get(id);

} public string putuser(@pathvariable long id, @modelattribute user user) "的put請求,用來更新user資訊

user u = users.get(id);

u.setname(user.getname());

u.setage(user.getage());

users.put(id, u);

return "success";

} public string deleteuser(@pathvariable long id) "的delete請求,用來刪除user

get /orders/2 http/1.1
第一種,強制使用統一api版本整個專案使用乙個api版本,不考慮相容性,缺點

第二種,uri中顯式新增版本號

把版本號嵌入到api中,例如developer.github.com/v3/media/,

訪問操作對應版本號下的資源。這種顯示的表示版本號的好處是可以很直觀的

展示當前api版本號。缺點是違背restful架構的原則,理論上乙個uri對應服

務器乙個特定的資源,新增版本號則會混淆版本和資源的概念,而且會讓整個

架構變得混亂,增加日後維護的成本。 還有一種是把版本號作為引數請求api

獲取操作對應版本號的資源,例如www.demo.com/list?version=2。

第三種,新增頭資訊控制版本

版本總結

通過上述簡單的分析,每種版本控制都有不同的優缺點,我們可以選擇合適自己的版本控制方式,個人認為小版本的更新可通過把版本號作為引數的方式或者通過accept欄位標示版本號的方式判斷,大的版本更新則通過url上新增版本號控制

理解RESTful架構

理解restful架構 restful的精闢理解 看url就知道要什麼 看http method就知道幹什麼 看http status code就知道結果如何 rest不是 rest 這個單詞,而是幾個單詞縮寫。但即使那幾個單詞說出來,也無法理解在說什麼 不是要貶低人,是我自己也理解困難 rest描...

理解RESTful架構

1.面向資源是rest最明顯的特徵,即將伺服器上所有提供的事物都抽象成資源 而且每一種資源都是有狀態的。這裡引出了 資源及其狀態 的概念。2.除了設計資源本身,還需設計資源之間的關聯關係,並且通過超連結 在表現層時 才將資源關聯起來。這裡引出了 超文字驅動 3.伺服器的資源通過語義化的api及一組有...

RESTful架構簡介

什麼是restful架構,總結起來就是三點 1 每乙個uri代表一種資源 2 客戶端和伺服器之間,傳遞這種資源的某種表現層 3 客戶端通過四個http動詞,對伺服器端資源進行操作,實現 表現層狀態轉化 參考阮一峰 理解restful架構 一 協議 api與使用者的通訊協議,總是使用https協議。二...