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)]