我正在生成包括添加Openapi/Swagger注解在内的REST端点的代码。
虽然用基本类型很好用,但对于自定义类我有一些问题。
现在,我有很多自定义类的重复模式条目(使用@Schema(implementation = MyClass.class)),但至少所需的信息已经存在。然而,我想找到一种方法删除重复的模式条目同时保留额外的信息。
在讨论$ref和缺乏同级属性的github问题上,我发现了一个示例,说明了您如何手动编写yaml以获得我所寻找的结果,但是我无法弄清楚如何设置注释以生成它。
如果按照示例进行操作,这就是我认为注释应该是什么样子的(为了安全起见,它被添加到getter和setter中):
import io.swagger.v3.oas.annotations.media.Schema;
...
public class SepaPaymentRequest {
...
@Schema(name = "w307BetrBeg", description = "BETRAG BEGUENSTIGTER ", allOf = { com.diesoftware.services.utils.Betrag.class }, required = true)
public void setW307BetrBeg(final Betrag w307BetrBeg) {
this.w307BetrBeg = w307BetrBeg;
}
...
}
然而,当我获取 openapi.yaml 文件时(片段):
w307BetrBeg:
$ref: '#/components/schemas/Betrag'
我希望拥有的:
w307BetrBeg:
title: 'Betrag'
description: 'BETRAG BEGUENSTIGTER'
allOf:
- $ref: '#/components/schemas/Betrag'
欢迎提供任何提示。