RESTful架構初探

2021-10-24 12:43:57 字數 1610 閱讀 7102

restful架構是目前較為流行的一種網際網路軟體架構,最早由roy thomas fielding在他2023年的博士**中提出,它結構清晰、符合標準、易於理解、擴充套件方便,所以正得到越來越多**的採用。

restful架構通常包含以下設計規則:

在restful架構中,每個**代表一種資源,**中不允許出現動詞,只能有名詞,所用的名詞常與資料庫表的字段相對應,一般而言,資料庫表都是同種記錄的集合,所以api中的名詞應該使用複數。動作使用http動詞來表達。

常用的http動詞有如下幾種

get(select):用於從伺服器查詢資源(一項或多項)。

post(create):用於在伺服器建立資源。

put(update):用於在伺服器更新資源(客戶端提供改變後的完整資源)。

patch(update):用於在伺服器更新資源(客戶端提供改變的屬性)。

delete(delete):用於從伺服器刪除資源。

常見的狀態碼定義如下,完整版參見

200 ok - [get]:伺服器成功返回使用者請求的資料,該操作是冪等的(idempotent)。

201 created - [post/put/patch]:使用者新建或修改資料成功。

202 accepted - [*]:表示乙個請求已經進入後台排隊(非同步任務)

204 no content - [delete]:使用者刪除資料成功。

400 invalid request - [post/put/patch]:使用者發出的請求有錯誤,伺服器沒有進行新建或修改資料的操作,該操作是冪等的。

401 unauthorized - [*]:表示使用者沒有許可權(令牌、使用者名稱、密碼錯誤)。

403 forbidden - [*] 表示使用者得到授權(與401錯誤相對),但是訪問是被禁止的。

404 not found - [*]:使用者發出的請求針對的是不存在的記錄,伺服器沒有進行操作,該操作是冪等的。

406 not acceptable - [get]:使用者請求的格式不可得(比如使用者請求json格式,但是只有xml格式)。

410 gone -[get]:使用者請求的資源被永久刪除,且不會再得到的。

422 unprocesable entity - [post/put/patch] 當建立乙個物件時,發生乙個驗證錯誤。

500 internal server error - [*]:伺服器發生錯誤,使用者將無法判斷發出的請求是否成功。

如果有報錯資訊,應該向使用者返回出錯資訊,一般而言,返回資訊中將error作為鍵名,出錯資訊作為鍵值。

伺服器向使用者返回結果應符合以下規範:

get /collection:返回資源物件的列表(陣列)

get /collection/resource:返回單個資源物件

post /collection:返回新生成的資源物件

put /collection/resource:返回完整的資源物件

patch /collection/resource:返回完整的資源物件

delete /collection/resource:返回乙個空文件

---待補充

RESTful架構初探

即軟體,這種意識越來越強烈,這種 網際網路軟體 採用客戶端 伺服器模式,建立在分布式體系上,通過網際網路通訊,具有高延時 高併發等特點。restful架構,就是目前最流行的一種互聯王軟體架構。他結構清晰 符合標準 易於理解 擴充套件方便。rest representational state tra...

理解RESTful架構

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

理解RESTful架構

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