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協議。二...