Restful風格學習經驗

2021-10-13 12:09:13 字數 2107 閱讀 4490

**:

restful風格是目前來說最流行的網際網路軟體架構,它並不是一種標準,而是乙個開發架構的思想風格。那麼究竟怎麼樣的風格算是rest呢,查了一些資料有了一些了解,寫了乙個demo參考一下。

首先說一下rest,它的全稱是representational state transfer,翻譯過來是表現層或者說是表象性的的狀態轉換。提到這個不得不說一下軟體開發的三層架構

通常意義上的三層架構就是將業務應用劃分成:表現層,業務邏輯層,資料訪問層。

1). 表現層: 應用中唯一使用者可見的層,即使用者介面

2). 業務邏輯層: 對業務邏輯的處理,對資料層的操作

3).資料訪問層: 對於資料庫的操作,包括增、刪、改、查。當然了,資料訪問層不僅僅訪問資料庫還可以訪問二進位制檔案,xml文件等。

那這裡的表現層或者表象指的又是怎麼樣的乙個表現呢?其實這個表現指的是資源的表現,最終展現出來的資源結果。

所謂的資源和我們平常理解的一樣,比如朋友推薦給我們一部好看的電影,我們經常會問朋友,哎,有沒有資源?這就是我們所說的,不管是電影,文字,還是**,都可以被稱為資源。那我們要怎麼去查詢到這個資源呢?

這是我們就要引入乙個概念,叫做uri。統一資源識別符號(uniform resource identifier),它是乙個用於標識某一網際網路資源名稱的字串,簡單來說uri就是資源所在的位置,後端將資源發布為uri,前端通過uri訪問資源,接下來並通過http動詞表示要對資源進行的操作,就是rest中所說的狀態轉換。

綜上所述,我們在後端進行增刪改查,將處理的結果返回給前端,處理的結果就是我們說的資源。

restful對資料格式沒有限制,就算你用的是xml或者其他格式都可以,但是大部分會選擇是返回json字串。

用一小段**解釋一下

@responsebody註解,就不會走視**析器,不會返回頁面,目前返回的json資料

value中的值就是我們說的uri

get操作就是我們用的http動詞來讓狀態裝換。

public @responsebody listgetuserinfo()

我們可以看到前端返回的是這樣的json字串的結果。

public @responsebody hero getuserinfo(@pathvariable() integer id )

我們看一下它的位址

現在我們知道了rest是一種面向資源服務的api設計方式,可以唯一標識和定位資源。 對於該url標識的資源做何種操作是由http的動詞決定的。 rest請求方法有4種,包括get,post,put,delete.分別對應獲取資源,新增資源,更新資源及刪除資源.

那為什麼現在我們要用restful這種風格去設計我們的api呢?

我們來說一下rest的優點和特徵。

其一:我們以api為界限進行解耦首先就是為了分離前後端

restful api 就可以通過一套統一的介面為所有客戶端提供web服務,實現前後端分離。

還有一點就是rest是無狀態的,換句話說,伺服器端不能儲存來自某個客戶的某個請求中的資訊,並在該客戶的其他請求中使用。

所謂無狀態的,即所有的資源,都可以通過uri定位,而且這個定位與其他資源無關,也不會因為其他資源的變化而改變。有狀態和無狀態的區別,舉個簡單的例子說明一下。

如查詢英雄的攻擊力,如果查詢是需要登入系統,進入查詢的頁面,執行相關操作後,獲取攻擊力的多少,則這種情況是有狀態的,因為查詢英雄攻擊力的每一步操作都依賴於前一步操作,只要前置操作不成功,後續操作就無法執行;

如果輸入乙個url即可得到指定英雄的攻擊力,則這種情況是無狀態的,因為獲取英雄攻擊力不依賴於其他資源或狀態,且這種情況下,英雄攻擊力是乙個資源,由乙個url與之對應,可以通過http中的get方法得到資源,這是典型的restful風格。

其三:返回有用的錯誤資訊(message)

恰當地理解和返回http status(狀態碼)。200=成功,404=資源不存在,500=伺服器端錯誤等等

綜合以上所說,大家應該對restful風格的流行有了感觸吧,restful好就好在它可以最大程度的隔離操作,不會使關聯操作互相受影響,它的url是一致的,不會混亂。

但是要真正學會rest還有很長的路要走,大家一起加油吧

Restful風格學習筆記

rest架構風格最重要的架構約束有6個 通訊只能由客戶端單方面發起,表現為請求 響應的形式。通訊的會話狀態 session state 應該全部由客戶端負責維護。響應內容可以在通訊鏈的某處被快取,以改善網路效率。通訊鏈的元件之間通過統一的介面相互通訊,以提高互動的可見性。通過限制元件的行為 即,每個...

RESTful風格學習小記

參考資料 1 3 restful不是一種技術,而只是一種api介面設計規範。凡是符合該規範的設計,都可以認為restful風格的服務。但是由於各開發人員對restful的理解存在誤區或者業務特殊場景,因此實際生產的環境中真正完全滿足restful風格的服務並不多,也沒有必要。但是在實際的應用中,有r...

設計風格 Restful

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