【学习笔记】RestFul风格

RestFul风格

RestFul就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格,基于这种风格的软件可以更简洁,更有层次,更易于实现缓存等机制。

比如:

之前的风格的url:http://localhost:8080/method?name=admin&password=12356

RestFul风格:http://localhost:8080/method/admin/12345

对比之前的url,使用RestFul风格的url变得更加简洁

 

RestFul风格的功能

资源:互联网所有的事物都可以被抽象为资源

资源操作:使用POST、DELETE、GET、PUT 不同方法对资源进行操作

 

在传统方式操作资源:通过不同的参数来实现不同的效果,方法单一,只有post和get

使用RestFul操作资源:可以通过不同的请求方式来实现不同的效果

 

通过代码来测试RestFul风格

我们从前端获取两个参数,并将计算结果返回到前端

之前的方式:

@Controller
public class RestFulController {
​
    @RequestMapping("/add")
    public String test(int a, int b, Model model){
        int res = a+b;
        model.addAttribute("msg","计算结果是:"+res);
        return "hello";
    }
}

直接在方法中,传入参数,前端的url为:http://localhost:8080/springmvc/add?a=10&b=11

 

通过RestFul风格:

首先在要传入的参数前面加一个注解@PathVariable,然后从@RequestMapping注解中直接取参数,如下:@RequestMapping("/add/{a}/{b}")

@Controller
public class RestFulController {
​
    @RequestMapping("/add/{a}/{b}")
    public String test(@PathVariable int a,@PathVariable int b, Model model){
        int res = a+b;
        model.addAttribute("msg","计算结果是:"+res);
        return "hello";
    }
}

之前的url方式已经不可用

image-20230226174820857

现在的url:http://localhost:8080/springmvc/add/10/12

相当于把 10 赋值给a ,把12 赋值给b

 

除此之外,我们还可以指定访问的方式

在RequestMapping中有一个枚举类RequestMethod,里面有一些访问的方式,如 GET,POST等

public enum RequestMethod {
    GET,
    HEAD,
    POST,
    PUT,
    PATCH,
    DELETE,
    OPTIONS,
    TRACE;
​
    private RequestMethod() {
    }
}

在RequestMapping注解中,指定访问的方式

@RequestMapping(value="/add/{a}/{b}",method = RequestMethod.DELETE)

我们指定了访问方式为DELETE后,再去访问,会报错405

image-20230226175638014

请求方式为GET,而要求的为DELETE,所以会报405

除了这种方式指定访问方式之外,还有一些注解,可以用来指定访问方式

@GetMapping("/add/{a}/{b}")
@DeleteMapping
@PostMapping
@PutMapping

如果有多种方式,访问了一个url,他会自动匹配适合的方式

如果通过表单指定提交的方式,就会发现相同的url,直接访问是GET方式,提交表单是POST方式

 

RestFul风格主要可以保证程序的安全性,没有把程序中的参数暴漏在url中

posted @ 2023-02-26 18:08  GrowthRoad  阅读(13)  评论(0编辑  收藏  举报