第五章 介面架構風格 — RESTful
介面: API(Application Programming Interface,應用程式介面)是一些預先定義的介面(如函式、HTTP介面),或指軟體系統不同組成部分銜接的約定,
用來提供應用程式與開發人員基于某軟體或硬體得以訪問的一組例程,而又無需訪問原始碼,或理解內部作業機制的細節,
介面(API): 可以指訪問servlet、controller的url, 呼叫其他程式的函式
架構風格: API 組織方式(樣子)
就是一個傳統的: http://localhost:9002/mytrans/addStudent?name=lisi&age=26
在地址上提供了 訪問的資源名稱addStudent, 在其后使用了get方式傳遞引數,
RESTful架構風格
5.1 REST
1)REST :
英文: Representational State Transfer
中文: 表現層狀態轉移
REST:是一種介面的架構風格和設計的理念,不是標準,
優點: 更簡潔,更有層次
表現層狀態轉移:
表現層就是視圖層, 顯示資源的, 通過視圖頁面,jsp等等顯示操作資源的結果,
狀態: 資源變化
轉移: 資源可以變化的, 資源能創建,new狀態, 資源創建后可以查詢資源, 能看到資源的內容,這個資源內容可以被修改, 修改后資源和之前的不一樣,
2)REST中的要素:
用REST表示資源和對資源的操作,
在互聯網中,表示一個資源或者一個操作,
資源是使用url表示的, 在互聯網中使用的圖片、視頻、文本、網頁等等都是資源,資源是用名詞表示的,
對資源:
- 查詢資源: 看,通過url找到資源,
- 創建資源: 添加資源
- 更新資源:更新資源 ,編輯
- 洗掉資源: 去除
資源使用url表示,通過名詞表示資源,
在url中使用名詞表示資源以及訪問資源的資訊,在url中使用" / "分隔對資源的資訊 :http://localhost:8080/myboot/student/1001
使用http中的動作(請求方式)表示對資源的操作(CURD)
請求方式:
GET: 查詢資源 – sql select
處理單個資源: 用他的單數方式
http://localhost:8080/myboot/student/1001
http://localhost:8080/myboot/student/1001/1
處理多個資源:使用復數形式
http://localhost:8080/myboot/students/1001/1002
POST: 創建資源 – sql insert
http://localhost:8080/myboot/student
在post請求中傳遞資料:
<form action="http://localhost:8080/myboot/student" method="post">
姓名:<input type="text" name="name" />
年齡:<input type="text" name="age" />
</form>
PUT: 更新資源 – sql update
<form action="http://localhost:8080/myboot/student/1" method="post">
姓名:<input type="text" name="name" />
年齡:<input type="text" name="age" />
<input type="hidden" name="_method" value="PUT" />
</form>
DELETE: 洗掉資源 – sql delete
<a href="http://localhost:8080/myboot/student/1">洗掉1的資料</a>
需要的分頁、 排序等引數,依然放在 url的后面, 例如:http://localhost:8080/myboot/students?page=1&pageSize=20
3) 一句話說明REST:
使用url表示資源 ,使用http動作操作資源,
RESTful 注解
-
@PathVariable: 從url中獲取資料 -
@GetMapping: 支持的get請求方式, 等同于@RequestMapping(method=RequestMethod.GET) -
@PostMapping: 支持post請求方式 ,等同于@RequestMapping(method=RequestMethod.POST) -
@PutMapping: 支持put請求方式, 等同于@RequestMapping(method=RequestMethod.PUT) -
@DeleteMapping: 支持delete請求方式, 等同于@RequestMapping(method=RequestMethod.DELETE) -
@RestController: 符合注解, 是@Controller和@ResponseBody組合,
在類的上面使用@RestController, 表示當前類者的所有方法都加入了@ResponseBody
例子:
1.新建一個模塊:



創建資源:

添加一個靜態頁面:



點擊注冊學生:

更新資源:

洗掉資源:

Postman : 測驗工具
官網地址
使用Postman : 可以測驗 get、post 、 put 、delete 等請求


post請求:


put請求:

5.2 在頁面中或者ajax中支持put、delete請求
在SpringMVC中 有一個過濾器支持post請求轉為put ,delete
過濾器: org.springframework.web.filter.HiddenHttpMethodFilter
作用: 把請求中的post請求轉為 put 、delete
實作步驟:
application.properties(yml): 開啟使用HiddenHttpMethodFilter過濾器- 在請求頁面中,包含
_method引數, 值是put、delete, 發起這個請求使用的post方式,
應用:


RESTful 總結:
? 增 post 請求、刪 delete 請求、改 put 請求、查 get 請求
? 請求路徑不要出現動詞
例如:查詢訂單介面 /boot/order/1021/1(推薦)
/boot/queryOrder/1021/1(不推薦)
? 分頁、排序等操作,不需要使用斜杠傳引數
例如:訂單串列介面 /boot/orders?page=1&sort=desc
一般傳的引數不是資料庫表的欄位,可以不采用斜杠
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/375819.html
標籤:其他
上一篇:基于Spring Cloud Alibaba + mybatis 分布式微服務高并發架構 資料平臺化(中臺)思想+多租戶saas企業開發架構技術選型和設計方案
下一篇:如何通過網頁查看IP與埠
