我正在生成Restendpoint,包括向生成的代码添加Openapi/Swagger注释。
虽然它可以很好地处理基本类型,但我在自定义类方面有一些问题。
现在我有很多自定义类的重复模式条目(使用@Schema(实现=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'
任何提示都是非常受欢迎的。
我还没有找到使用注释来完成它的方法,即通过注释类。
我认为可以通过以下方式实现:
当我说“模型”时,我指的是io的一个实例。大摇大摆v3。美洲国家组织。模型。媒体模式
。
特别是我认为你会想要创建和注入一个io.swagger.v3.oas.models.media.ComposedSchema
实例,它支持allOf
。
这样做(即创建模型实例)与手工编写YAML没有太大区别。
另一种可能性——我还没有尝试过——可能是编写一个稍微不同的ModelConverter,将其安装到转换器链中。然后,拦截对resolve
的调用,该调用返回一个SchemaObject,其name
是Betrag
,并且(有时?)将其替换为使用allOf
的ComposedSchema
实例。
我正在使用从以下依赖项导入的Swagger/OpenAPIV3注释创建应用程序的API描述: 其中一个批注是批注,它接受名为的属性,该属性允许字符串数组: 现在,我想使用在枚举类上构造的自定义方法,该方法返回允许的字符串数组,因此不需要在每次向枚举添加类型时添加该方法。以便我们可以这样使用它: 现在这是无法编译的,因为在执行注释时不知道该方法。是否有这样的解决方案允许在SwaggerV3注释属性值
当我访问我的Swagger UIendpoint时,我会看到这个服务的记录良好的条目,包括关于和参数的信息。现在,我试图以类似的方式创建和方法,但遇到了一个问题。 由于我的/请求包含许多表单参数,所以我将它们封装到一个对象中,并用注释该方法。我的表单对象如下所示: 我的方法如下所示: 什么也没做。我尝试将方法签名更改为如下所示: 还是什么都没有。我的问题是,是否有一种方法可以让OpenAPI/Sw
OpenAPI3.0规范规定,没有任何类型的模式将匹配任何数据类型。 没有类型的模式匹配任何数据类型--数字、字符串、对象等等。 因此,对此进行建模的正确方法是下面的Swagger定义,其中没有属性: 但是,每个开放问题Swagger-core#3834,Java值都映射到OpenAPI类型,而不是任意类型。如上所述,这意味着这样的API返回或接受不是OpenAPI的类型是不正确的,例如、、等。
我在一个带注释的对象中有几个枚举,如: 其中枚举定义为: 使用Openapi3,我可以生成一个swagger文档。我的问题是,和,翻译方式不同,如: 我希望< code>Enum2与< code>Enum1一样被记录,因此具有实际的枚举值。有什么方法可以强制这样做,或者解释为什么会这样?两个枚举基本上与示例中的相同。
我们正在考虑为我们的项目使用grails 4.0.0,我看到这个新版本将Micronaut作为新的父应用程序上下文,并且处理了许多Micronaut特性(见grails doc:http://docs.grails.org/latest/guide/introduction.html#micronautSupport) 我们希望使用Micronaut Swagger/OpenAPI文档生成器功能(
我目前正在做一个项目,在这个项目中我使用了spring functional web编程。我通常在restController中使用swagger 2的注释,但是对于函数式web编程,我找不到在哪里!告诉应用程序搜索endpoint(如Docket中的basepackage)并在html页面中加载swagger的地方。以下是我的代码: 配置类: 依赖项: 结果是: