Rest风格基本语法与实战

1,前置知识点

1.1 @GetMapping,@PostMapping,@PutMapping,@DeleteMapping

平时我们都是使用@RequestMapping,然后通过它的method属性来指定请求的方式,这样是有些麻烦的,然后这四个标签就是来简化这一点的,具体如下,
@GetMapping = @RequestMapping(method = RequestMethod.GET)
@PostMapping = @RequestMapping(method = RequestMethod.POST)
@PutMapping = @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)

1.2 @PathVariable

@PathVariable是Spring MVC中的注解,用于从URL路径中提取变量值并将其绑定到方法参数上。它通常与@RequestMapping一起使用。
使用@PathVariable注解可以方便地获取REST风格URL路径中的变量值,并将其作为方法参数使用。
java 复制代码
@GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("book query ..." + id );
        return "{'module':'book query'}";
    }

在getUserById方法上,我们使用@GetMapping("/{id}")将方法与URL路径/books/{id}进行映射。{id}表示一个占位符,它对应URL路径中的实际值。

然后,我们在方法参数上使用@PathVariable注解,将id参数与URL路径中的实际值进行绑定。Spring MVC会自动提取URL路径中的相应部分,并将其作为参数传递给getUserById方法。

例如,当客户端发送GET请求到/books/1时,Spring MVC将提取URL中的1作为id参数的值,并将其传递给getById方法。在方法内部,我们可以使用id来执行相应的逻辑操作,比如根据用户ID查询用户信息。

1.3 按照REST风格访问资源时,使用行为动作区分对资源进行了何种操作

http://localhost:8080/books			查询所有图书信息   GET(查询)
http://localhost:8080/books/1			查询指定图书信息	GET(查询)
http://localhost:8080/books			添加图书信息	POST(新增/保存)
http://127.0.0.1:8080/books	修改用户信息	PUT(修改/更新)
http://localhost:8080/books/1	删除用户信息	DELETE(删除)

2,代码演示

controller类

java 复制代码
package com.hkd.controller;

import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/books")
public class BookController {

    @GetMapping
    public String query(){
        System.out.println("book query..." );
        return "{'module':'book query'}";
    }

    @PostMapping
    public String save(){
        System.out.println("book save..." );
        return "{'module':'book save'}";
    }

    @PutMapping
    public String update(){
        System.out.println("book update..." );
        return "{'module':'book update'}";
    }

    @DeleteMapping("/{id}")
    public String update(@PathVariable Integer id){
        System.out.println("book delete ..." + id );
        return "{'module':'book delete'}";
    }

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("book query ..." + id );
        return "{'module':'book query'}";
    }
}
使用postman测试
以查询所有和删除为例演示

查询所有


删除图书


...