RESTful 的基本認識

2021-08-08 16:43:49 字數 1861 閱讀 6905

在很早之前接觸 spring mvc 的時候,都知道 spring mvc 支援 restful 風格api的開發,但對於 restful 只是有個模糊的認識,以至於甚至在開發寫出來的介面其實不符合 restful 的要求。

定義rest 的全稱是 resource representational state transfer ,資源以某種表現形式進行狀態轉移

resource:資源,即資料;

representational:某種表現形式,比如用json,xml,jpeg等;

state transfer:狀態變化。通過http動詞實現。

http動詞有如下幾個:

- get 用來獲取資源,

- post 用來新建資源(也可以用於更新資源),

- put 用來更新資源,

- delete 用來刪除資源

在restful api中,url中只使用名詞來指定資源,原則上不使用動詞,並且一般使用複數,比如 get 操作 https://v1/users/1 來獲取使用者id為1的資訊資源,禁止使用 http://v1/getuserbyid 、 http://v1/deleteuser 之類的url。

用處一種技術的存在肯定是為了解決一些問題而誕生的,rest是一種軟體架構模式,通過使用restful 風格的 api 用來解決多端(pc、android、ios)共用一套統一的 api ,避免重複開發。

在 springmvc 中的應用

用 springmvc 可以開發 restful 風格的restful api,以 spring boot 為基本框架,這裡寫乙個基本的 controller 類

@restcontroller

public

class

usercontroller

public string updateuser(@pathvariable("id") string userid) else

return resultutil.error("操作失敗");

}public string insertuser(string usercode, string username) else

return resultutil.error("操作失敗");

}public string deleteuser(@pathvariable("id") string userid) else

return resultutil.error("操作失敗");

}}

resultutil 封裝返回資料格式,這裡只是乙個簡單的封裝

public

class

resultutil

public

static string success(object data, string msg)

public

static string error(string msg)

public

static string error(object data, string msg)

}

對應的請求url為:

查詢、更新、刪除: /users/1

插入: /users

有時需要管理版本號會把版本號寫在url,比如v1/users/1v2/users/1。至於請求是什麼型別的,可以在請求在head中設定,如果是ajax請求則設定比較簡單

$.ajax(

});$.ajax(,

success: function

(data)

});

相關參考鏈結

restful風格一些認識

什麼是rest?rest 英文 representational state transfer,簡稱rest,意思 表述性狀態轉換,描述了乙個架構樣式的網路系統,比如web應用 它是一種軟體架構風格 設計風格,而不是標準,只是提供了一組設計原則和約束條件,它主要用於客戶端和服務端互動類的軟體。基於這...

網路的基本認識

如果使用tcp ip乙太網的5層 第一層 物理層,提供裝置的物理介面,與市售的介質 網路介面卡相相容 第二層 資料鏈路層,格式化訊號到源 目的硬體位址的資料幀 第三層 網路層,實現帶有32位ip位址的ip報文包 第四層 傳輸層,實現可靠性連線 傳輸 查錯 重發 埠服務 傳輸排程 第五層 應用層,mo...

HTTP的基本認識

超文字傳輸協議,專門用於web通訊 通訊過程 注 訊息 http message 其他叫法 報文 實體 資料 幀 訊息結構 請求方法 method 最常見的兩種請求方法 方法說明 特點get 常用於伺服器獲取資料 請求資料在url中 header中 1 傳輸資料量小 2 支援快取 post 常用於伺...