Spring Boot 后端接收参数
上一篇:Spring Boot 后端入门
有多种方式可以接收参数。分别是查询参数、路径参数以及请求体参数。
查询参数
-
创建控制器类:
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
参数的欢迎字符串。 -
在项目根目录下编译程序:
mvn clean install
-
启动程序:
mvn spring-boot:run
-
访问 API 接口:
$ curl "http://localhost:8080/api/greet?name=John" Hello, John!
路径参数
-
创建控制器类:
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); } }
-
在项目根目录下编译程序:
mvn clean install
-
启动程序:
mvn spring-boot:run
-
访问 API 接口:
$ curl "http://localhost:8080/api/greet/John" Hello, John!
请求体参数
我们需要定义一个模型类来接收请求体参数。
-
创建实体类:
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 的注解来自动生成
getter
和setter
方法。需要将 Lombok 依赖加入pom.xml
。 -
创建控制器类:
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()); } }
-
在项目根目录下编译程序:
mvn clean install
-
启动程序:
mvn spring-boot:run
-
访问 API 接口:
$ curl -X POST "http://localhost:8080/api/user" \ -H "Content-Type: application/json" \ -d '{"name":"John","age":40}' John is 40 years old.