RestFul風格
1. 概念
RestFul就是一個資源定位及資源操作的風格。不是标準也不是協定,隻是一種風格。基于這個風格設計的軟體可以更加簡介,更有層次,更易于實作緩存等機制,以及更加安全。
2. 功能
- 資源:網際網路中所有的事物都可以被抽象為資源,可以通過url統一資源定位符通路。
- 資源操作:使用POST,GET,PUT,DELETE等不同的方法對資源進行操作。
- 傳統的操作資源方式:通過不同的參數來實作不同的效果。方法單一,即post和get例如:
- http://localhost/user/select.action?id=1
- http://localhost/user/delete.action?id=1
- http://localhost/user/update.action
- http://localhost/user/save.action
- 使用RestFul風格操作資源:可以通過不同的請求方式實作不同的效果,請求位址可以一樣,但是功能可以不同,它注重的是請求方法(PUT改,GET查,DELETE删,POST增),上面的修改為RestFul風格如下
- http://localhost/user/1
- http://localhost/user/1
- http://localhost/user
- http://localhost/user
3. 示例
在上一個列子中直接添加一個Controller,上一個例子位址:https://blog.csdn.net/weixin_41549354/article/details/108139130
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RestFulController {
//傳統方式,a跟b表示這個接口要接受的參數
@RequestMapping("add1")
public String test1(int a, int b, Model model) {
model.addAttribute("msg", "相加結果為:"+(a+b));
return "hello";
}
//RestFul風格
//使用路徑變量注解@PathVariable添加到方法的參數上,讓方法參數的值綁定到一個URI模闆變量上。
//對應的@RequestMapping注解可以改為@GetMapping("add2/{a}/{b}"),
//類似的有@DeleteMapping("add2/{a}/{b}")等等,雖然位址一樣,但是它會根據前端送出的不同請求方式
//識别到不同的@RequestMapping控制器中的方法。
@RequestMapping(value="add2/{a}/{b}", method=RequestMethod.GET)
public String test2(@PathVariable int a, @PathVariable int b, Model model) {
model.addAttribute("msg", "相加結果為:"+(a+b));
return "hello";
}
}
通路測試
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-M94ExocF-1597954310398)(D:\我的檔案\Pictures\42.PNG)]
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-OJSa7NLp-1597954310404)(D:\我的檔案\Pictures\43.PNG)]