嗨,我正在积累有关 Spring Boot 的知识。
到目前为止我已经创建了:
我现在尝试使用从正文获取 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
。这是一个经常出现的问题。其他的好像都还好。