在很早之前接觸 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 類
resultutil 封裝返回資料格式,這裡只是乙個簡單的封裝@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("操作失敗");
}}
對應的請求url為: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
v1/users/1
、v2/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 常用於伺...