基於MVC的RESTful風格的實現

2021-09-29 06:37:28 字數 3462 閱讀 1444

紅塵**

1.restful風格闡述

rest服務是一種roa(resource-oriented architecture,面向資源的架構)應用。主要特點是方法資訊存在於http協議的方法中(get,post,put,delete),作用域存在於url中。例如,在乙個獲取裝置資源列表的get請求中,方法資訊是get,作用域資訊是uri種包含的對裝置資源的過濾、分頁和排序等條件

良好的rest api不需要任何文件

1.1rest風格資源路徑

rest風格的資源路徑設計是面向資源的,資源的名稱

應該是準確描述該資源的名詞

資源路徑概覽:sheme://host:port/path?querystring

例:http://localhost:8080/bywlstudio/users/user?username=xiuer

1.2http方法

get用於讀取

、檢索、查詢

、過濾資源

psot用於建立

乙個資源

put用於修改

、更新資源、建立客戶端維護主鍵資訊的資源

delete用於刪除

資源

資源位址和http方法結合在一起就可以實現對資源的完整定位

1.3restful風格api設計

上文講述了通過http方法和資源路徑對伺服器的乙個資源進行定位的過程

接下來看乙個rest風格api的設計

功能描述

新增/建立

post/usersput/users建立客戶端維護主鍵資訊的資源

刪除delete/users/

修改/更新

put/users/

查詢全部

get/users

主鍵查詢

get/users/get/users?id=26

分頁作用域查詢

get/users?start=0&size=10get/users?07,2019-07,2020

可以看到通過這個restapi都是通過對同乙個資源

的操作,所不同的就是通過不同的http方法

來實現對資源不同的處理。

2.mvcrest的支援

1.1主要通過註解來實現

@responsebody將響應內容轉換為json格式

@requestbody請求內容轉換為json格式

@pathvariable("id")用於繫結乙個引數

@restcontroller等同於@controller+@responsebody在類上寫了這個註解,標識這個類的所有方法只返回資料

,而不進行檢視跳轉

1.2返回http狀態碼

rest風格api乙個最鮮明的特點通過返回對應的httpstatus來判斷客戶端的操作是否完成

下面是spring中關於http狀態碼描述的列舉類,本文列舉了常見的狀態碼

(讀者若對此感興趣可以檢視httpstatus原始碼)

spring返回狀態碼是通過@responsestatus註解或者responseentity<?>類實現的。

@responsestatus方式

responseentity<?>方式

1.3由於mvc預設不支援putdelete方法,所以需要手動開啟

tomcat伺服器的web.xml檔案中開啟一下配置

defaultservlet-name>

org.apache.catalina.servlets.defaultservletservlet-class>

debugparam-name>

0param-value>

init-param>

listingsparam-name>

falseparam-value>

init-param>

readonlyparam-name>

trueparam-value>

init-param>

1load-on-startup>

servlet>

在專案的web.xml中配置

3.mvc實現rest**實現

3.1例項環境

3.2api設計

獲取全部使用者

json

200get/users/

獲取指定主鍵的使用者

json

200put/users/

修改指定的主鍵的使用者資訊

json

200/201

post/users

增加乙個使用者

json

201delete/users/

刪除乙個使用者

void

2043.3控制層**

基於Restful風格的API操作

索引操作 新增索引 put index 索引 查詢索引 get index 刪除索引 delete index 對映管理資料管理1.通過id查詢 語法1 通過id查詢所有 select get 索引名 型別 id 語法2 通過id查詢部分 select 欄位1,欄位2 get 索引號 型別 id?s...

restful風格的介面

api與使用者的通訊協議,總是使用https協議。應該盡量將api部署在專用網域名稱之下。如果確定api很簡單,不會有進一步擴充套件,可以考慮放在主網域名稱下。應該將api的版本號放入url。v1 另一種做法是,將版本號放在http頭資訊中,但不如放入url方便和直觀。github採用這種做法。路徑...

設計風格 Restful

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