![](/img/trans.png)
[英]@RequestBody not mapping JSON to Java Object - Spring Boot
[英]Java Spring Boot OpenApi 3 - How to add description for RequestBody?
我想在 spring boot openapi 3 中对RequestBody
进行描述。 所以我让我的代码是这样的:
@PostMapping(produces = "application/json", consumes = "application/json")
public ResponseEntity<Book> addBook(
@Schema(
description = "Book to add.",
required=true,
schema=@Schema(implementation = Book.class))
@Valid @RequestBody Book book
) {
return ResponseEntity.ok(bookRepository.add(Book));
}
RequestBody
描述是Book to add.
我想要的用户界面是这样的:
但什么也没有发生! 我的用户界面中没有描述。
问题是什么 ?
从您的代码片段来看,在我看来,您的描述实际上属于 @RequestBody 批注而不是 @Schema 批注。
使用@Schema,您可以定义和描述您的模型,但您实际想要做的是在您的操作上下文中描述参数。
尝试一些类似的东西:
@PostMapping(produces = "application/json", consumes = "application/json")
public ResponseEntity<Book> addBook(
@RequestBody(description = "Book to add.", required = true,
content = @Content(
schema=@Schema(implementation = Book.class)))
@Valid Book book
) {
return ResponseEntity.ok(bookRepository.add(Book));
}
感谢加布里埃尔·弗拉斯尔。
我们应该使用
io.swagger.v3.oas.annotations.parameters.RequestBody
代替
org.springframework.web.bind.annotation.RequestBody
所以我们有好东西,比如description
, content
,......
@PostMapping(produces = "application/json", consumes = "application/json")
public ResponseEntity<Book> addBook(
@RequestBody(description = "Book to add.", required = true,
content = @Content(
schema=@Schema(implementation = Book.class)))
@Valid @org.springframework.web.bind.annotation.RequestBody Book book
) {
return ResponseEntity.ok(bookRepository.add(Book));
}
为此,我从 springframework 添加 @RequestBody。 它对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.