问题描述
@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));
}
2.
@PostMapping(produces = "application/json",consumes = "application/json")
public ResponseEntity<BasicBook> addBook(
@RequestBody(description = "Book to add.",content = @Content(
schema=@Schema(allOf = BasicBook.class,oneOf = {
HomeScience.class,GeneralScience.class })))
@Valid BasicBook book
) {
return ResponseEntity.ok(bookRepository.add(Book));
}
上面代码段 1. 工作正常。在 Swagger UI 中,我可以看到带有示例值的 RequestBody,我可以在其中执行该值。
但是对于 snippet 2.,当我尝试继承(即 oneOf、allOf 或 anyOf)时,此架构不起作用。 只有 BasicBook 属性进入 (Swagger UI)RequestBody 的示例值。
3.
@PostMapping(produces = "application/json",consumes = "application/json")
public ResponseEntity<BasicBook> addBook(
@Parameter(required = true,description = "DTO for book.",content = {
@Content(mediaType = "application/json",schema = @Schema(allOf = BasicBook.class,oneOf = {
HomeScience.class,GeneralScience.class },discriminatorMapping = {
@discriminatorMapping(value = "HOME",schema = HomeScience.class),@discriminatorMapping(value = "GENERAL",schema = GeneralScience.class) },discriminatorProperty = "type")) })
@RequestBody @Valid BasicBook book
) {
return ResponseEntity.ok(bookRepository.add(Book));
}
snippet 3. 也没有给出想要的结果。
如何在 RequestBody 中使用 oneOf、allOf 或 anyOf。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)