Spring Boot 后端接收参数

上一篇:Spring Boot 后端入门

有多种方式可以接收参数。分别是查询参数、路径参数以及请求体参数。

查询参数

  1. 创建控制器类:

    mkdir controller
    vim controller/GreetingController.java
    
    package com.example.demo.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/api")
    public class GreetingController {
    
        @GetMapping("/greet")
        public String greet(@RequestParam(value = "name", defaultValue = "World") String name) {
            return String.format("Hello, %s!", name);
        }
    }
    

    这里,我们在 /api/greet 下创建了一个 GET 接口。这个接口接收一个参数 name,然后返回一个带有 name 参数的欢迎字符串。

  2. 在项目根目录下编译程序:

    mvn clean install
    
  3. 启动程序:

    mvn spring-boot:run
    
  4. 访问 API 接口:

    $ curl "http://localhost:8080/api/greet?name=John"
    Hello, John!
    

路径参数

  1. 创建控制器类:

    mkdir controller
    vim controller/GreetingController.java
    
    package com.example.demo.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/api")
    public class UserController {
    
        @GetMapping("/greet/{name}")
        public String greet(@PathVariable("name") String name) {
            return String.format("Hello, %s!", name);
        }
    }
    
  2. 在项目根目录下编译程序:

    mvn clean install
    
  3. 启动程序:

    mvn spring-boot:run
    
  4. 访问 API 接口:

    $ curl "http://localhost:8080/api/greet/John"
    Hello, John!
    

请求体参数

我们需要定义一个模型类来接收请求体参数。

  1. 创建实体类:

    mkdir model
    vim model/User.java
    
    package com.example.demo.model;
    
    import lombok.Data;
    
    @Data
    public class User {
        private String name;
        private int age;
    }
    

    这里使用了 Project Lombok 的注解来自动生成 gettersetter 方法。需要将 Lombok 依赖加入 pom.xml

  2. 创建控制器类:

    mkdir controller
    vim controller/GreetingController.java
    
    package com.example.demo.controller;
    
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.example.demo.model.User;
    
    @RestController
    @RequestMapping("/api")
    public class UserController {
    
        @PostMapping("/user")
        public String createUser(@RequestBody User user) {
            return String.format("%s is %d years old.", user.getName(), user.getAge());
        }
    }
    
  3. 在项目根目录下编译程序:

    mvn clean install
    
  4. 启动程序:

    mvn spring-boot:run
    
  5. 访问 API 接口:

    $ curl -X POST "http://localhost:8080/api/user" \
           -H "Content-Type: application/json" \
           -d '{"name":"John","age":40}'
    John is 40 years old.
    

下一篇:Spring Boot 后端操作数据库

posted @ 2025-01-02 22:14  Undefined443  阅读(6)  评论(0编辑  收藏  举报