我正在积累有关 Spring Boot 的知识。
到目前为止我已经创建了:
- 获取返回硬编码数据的请求 - WORKS
- 获取使用路径 pram ID 返回数据的请求 - WORKS
我现在想尝试使用从正文获取 ID 的发布请求(这是为了学习而不是最佳实践,因为我知道这将在路径中使用它)。
但是,我的代码不断返回“0”而不是 ID...
我究竟做错了什么?
控制器
@RestController
public class spannerController {
@Autowired
CdRequestService cdRequestService;
@GetMapping("/getData")
public Optional<Request> getData() {
Optional<Request> request;
request = requestService.getRequest(101);
return request;
}
@GetMapping("/getData/{id}")
public Optional<Request> getData(@PathVariable("id") int id) {
Optional<Request> request;
request = requestService.getRequest(id);
return request;
}
@PostMapping(value = "/getData",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public void getDataPost(@RequestBody PostRequest request) {
System.out.println(request);
System.out.println(request.getId());
}
}
请求类
public class PostRequest {
int id;
public PostRequest() {
}
public PostRequest(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
确保您正在使用
org.springframework.web.bind.annotation.RequestBody
而不是io.swagger.v3.oas.annotations.parameters.RequestBody
. 这是一个经常出现的问题。其他一切似乎都还好。