RESTful架構風格

2021-09-12 19:53:22 字數 1707 閱讀 2295

restful架構風格最初由roy t. fielding(http/1.1協議專家組負責人)在其2023年的博士學位**中提出。http就是該架構風格的乙個典型應用。從其誕生之日開始,它就因其可擴充套件性和簡單性受到越來越多的架構師和開發者們的青睞。一方面,隨著雲計算和移動計算的興起,許多企業願意在網際網路上共享自己的資料、功能;另一方面,在企業中,restful api(也稱restful web服務)也逐漸超越soap成為實現soa的重要手段之一。時至今日,restful架構風格已成為企業級服務的標配。

rest即representational state transfer的縮寫,可譯為"表現層狀態轉化」。rest最大的幾個特點為:資源、統一介面、uri和無狀態。

1.1 restful架構風格的特點

1.1.1 資源

所謂"資源",就是網路上的乙個實體,或者說是網路上的乙個具體資訊。它可以是一段文字、一張、一首歌曲、一種服務,總之就是乙個具體的實在。資源總要通過某種載體反應其內容,文字可以用txt格式表現,也可以用html格式、xml格式表現,甚至可以採用二進位制格式;可以用jpg格式表現,也可以用png格式表現;json是現在最常用的資源表示格式。

結合我的開發實踐,我對資源和資料理解如下:

資源是以json(或其他representation)為載體的、面向使用者的一組資料集,資源對資訊的表達傾向於概念模型中的資料:

資源總是以某種representation為載體顯示的,即序列化的資訊

常用的representation是json(推薦)或者xml(不推薦)等

represntation 是rest架構的表現層

相對而言,資料(尤其是資料庫)是一種更加抽象的、對計算機更高效和友好的資料表現形式,更多的存在於邏輯模型中

1.1.2 統一介面

restful架構風格規定,資料的元操作,即crud(create, read, update和delete,即資料的增刪查改)操作,分別對應於http方法:get用來獲取資源,post用來新建資源(也可以用於更新資源),put用來更新資源,delete用來刪除資源,這樣就統一了資料操作的介面,僅通過http方法,就可以完成對資料的所有增刪查改工作。

即:get(select):從伺服器取出資源(一項或多項)。

post(create):在伺服器新建乙個資源。

put(update):在伺服器更新資源(客戶端提供完整資源資料)。

patch(update):在伺服器更新資源(客戶端提供需要修改的資源資料)。

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

1.1.3 uri

可以用乙個uri(統一資源定位符)指向資源,即每個uri都對應乙個特定的資源。要獲取這個資源,訪問它的uri就可以,因此uri就成了每乙個資源的位址或識別符。

一般的,每個資源至少有乙個uri與之對應,最典型的uri即url。

1.1.4 無狀態

所謂無狀態的,即所有的資源,都可以通過uri定位,而且這個定位與其他資源無關,也不會因為其他資源的變化而改變。有狀態和無狀態的區別,舉個簡單的例子說明一下。如查詢員工的工資,如果查詢工資是需要登入系統,進入查詢工資的頁面,執行相關操作後,獲取工資的多少,則這種情況是有狀態的,因為查詢工資的每一步操作都依賴於前一步操作,只要前置操作不成功,後續操作就無法執行;如果輸入乙個url即可得到指定員工的工資,則這種情況是無狀態的,因為獲取工資不依賴於其他資源或狀態,且這種情況下,員工工資是乙個資源,由乙個url與之對應,可以通過http中的get方法得到資源,這是典型的restful風格。

RESTful架構風格

rest即representational state transfer的縮寫,可譯為 表現層狀態轉化 rest最大的幾個特點為 資源 統一介面 uri和無狀態。所謂 資源 就是網路上的乙個實體,或者說是網路上的乙個具體資訊。它可以是一段文字 一張 一首歌曲 一種服務,總之就是乙個具體的實在。資源總...

設計風格 Restful

rest是設計風格而不是標準,只提供了一組設計原則和約束條件 資源由uri來指定 uri 統一資源識別符號 對資源的包括包括獲取 建立 修改 和刪除資源 這些操作正好對應http協議提供的get post put和delete方法 通過操作資源的表現形式來操作資源 非rest風格url http q...

restful風格概述

利用http協議的四種操作get put delete post實現對伺服器資源的增刪改查 get 用於查詢,post用於新增,put用於修改,delete用於刪除 restful風格程式設計。restful 更強調是資源 webservice,rml等訪問技術更強調過程。restful的重點體現在...