REST學習筆記

2021-08-26 02:00:04 字數 1735 閱讀 8948

restful web services學習筆記,在此記錄以備以後參考

[b]在應用裡每個有價值的事物都應該被暴露為乙個資源。[/b]

[size=medium]一般roa設計步驟:[/size]

1.規劃資料集

2.把資料集劃分為資源

對於其中每種資源:

3.用uri為該資源命名

4.暴露乙個統一介面的子集

5.設計來自客戶端的表示

6.設計發給客戶端的表示

7.用超連結和表單把該資源與已有資源聯絡起來

8.考慮有哪些典型的事件經過

9.考慮可能出現哪些錯誤情況

[size=medium]可定址性[/size]

如果乙個web服務將其資料集裡有價值部分作為資源發布出來,那麼該應用就是可定址的。乙個uri應當只表示乙個資源。乙個資源的不同表示可以使用不同的uri,例如:/release/104.html和/release/104_en.html

[size=medium]狀態與無狀態性[/size]

rest服務裡狀態分為兩種:資源狀態(即關於資源的資訊)和應用狀態(即關於客戶端在應用中所處狀態的資訊)。資源狀態儲存在服務端,而且只能以表示的形式發給客戶端。應用狀態儲存在客戶端;當它能夠建立、修改或刪除乙個資源時,它將作為post、put或delete請求的一部分傳送給伺服器,成為資源狀態。例如使用搜尋引擎時提交乙個關鍵字得到查詢結果,然後我們又進行翻頁,這裡關鍵字和頁碼都是屬於應用狀態。

[size=medium]統一介面[/size]

get:獲取乙個資源的表示

put:建立乙個新資源,修改已有資源。

delete:刪除已有資源

post:建立從屬於某個父資源的資源,也可以用它來為資源的當前狀態新增資料。(這裡的新增資料和put的用法修改已有資源有區別,例如:通過post向伺服器提交新的log)

head:獲取的乙個子包含元資料的方法

options:檢視乙個資源支援哪些http方法。options請求的響應裡含有http allow報頭(header)。allow報頭的例子:allow:get,head 這個報頭表明:該資源支援get和head請求。

put和post動作

向新資源發put請求

向已有資源發put請求

post

weblogs

n/a(資源已存在)

無效果建立乙個新部落格

weblogs/myweblog

建立該部落格

修改該部落格的設定

往部落格裡新增一篇文章

weblogs/myweblog/entries/1

n/a(你無法知道這個uri)

[color=red]put與post的區別就在於:假如是客戶端負責決定新資源採用什麼uri,那就用put;假如是伺服器負責新資源採用什麼uri,那就用post。put的實現要求具有等冪性而post的實現可以沒有等冪性[/color]

[size=medium]uri設計[/size]

uri設計有三條基本原則:

1.用路徑變數(path variables)來表達層次結構:weblogs/myweblog/entries/1。

2.用逗號或分號表達非層次結構:/parent/child1;child2 /earth/43.2,45.6。當作用域資訊的次序有關緊要時,就用逗號,否則就用分號。

3.用查詢變數(query variables)來表達演算法的輸入,例如:/search?q=jellyfish&start=20。

REST學習筆記

其實嚴格來說算不上是學習筆記,只是一些資源的整合,記錄一下最近學了啥,也給剛接觸的同學節省一些時間。不過還是一頭霧水,看不到能執行的 我就難以理解,逃 入門 通俗解答什麼是rest 知乎 要點 5.其實這篇文章的重點在於最後的參考文獻是非常好的閱讀列表 如下 很多都很適合用來學習,其中有些我會在後面...

REST與SOAP之比較 REST篇

rest能夠在計算機領域被廣泛採用,它走的道路是不同尋常的。這個術語是由roy fielding創造的。在web方面,我們必須承認fielding是非常精通的,他曾經幫助建立http 1.0規範,該規範從1996年開始就為web提供基本準則。我有這樣乙個推斷,在計算機世界中,但凡那些讓開發人員記住的...

WCF中的REST架構一(REST 概述)

wcf中的 rest 架構一 rest 概述 不同的人似乎對 rest 有不同的定義,有些定義是非常嚴格的,而有些則是比較自由的。我傾向於認為 rest 架構存在於乙個連續的範圍裡,如圖所示 我們可以認為 rest 背後隱含的基本理念如下 越簡單越好 web 一直是非常成功的。web 是很簡單的。w...