我正在使用从以下依赖项导入的Swagger/OpenAPIV3注释创建应用程序的API描述:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.1.45</version>
</dependency>
其中一个批注是@schema
批注,它接受名为allowableValues
的属性,该属性允许字符串数组:
@Schema(description = "example",
allowableValues = {"exampleV1", "exampleV2"},
example = "exampleV1", required = true)
private String example;
现在,我想使用在枚举类上构造的自定义方法,该方法返回允许的字符串数组,因此不需要在每次向枚举添加类型时添加该方法。以便我们可以这样使用它:
public enum ExampleEnum {
EXAMPLEV1, EXAMPLEV2;
public static String[] getValues() {...}
}
@Schema(description = "example",
allowableValues = ExampleEnum.getValues(),
example = "exampleV1", required = true)
private String example;
现在这是无法编译的,因为在执行注释时不知道该方法。是否有这样的解决方案允许在SwaggerV3注释属性值中使用枚举?
查看了以下资源:
您可以在global components部分中定义可重用的枚举,并在其他地方通过$ref引用它们。
最坏的情况是,我确实可以在一个常量位置定义它,并且在将类型添加到枚举之后,只需要另外一个位置来添加类型。但如果可能的话,我首先想探讨一下上面提到的解决方案。
没有提到使用任何类或动态生成的值。
是关于在swagger中记录枚举,而不是在swagger注释API中使用它们。
尝试使用@schema(implementation=exampleEnum.class,...)
,您可以添加所需的所有其他属性。我需要更多的信息,您的实现,但尝试这首先。
当我访问我的Swagger UIendpoint时,我会看到这个服务的记录良好的条目,包括关于和参数的信息。现在,我试图以类似的方式创建和方法,但遇到了一个问题。 由于我的/请求包含许多表单参数,所以我将它们封装到一个对象中,并用注释该方法。我的表单对象如下所示: 我的方法如下所示: 什么也没做。我尝试将方法签名更改为如下所示: 还是什么都没有。我的问题是,是否有一种方法可以让OpenAPI/Sw
我正在生成Restendpoint,包括向生成的代码添加Openapi/Swagger注释。 虽然它可以很好地处理基本类型,但我在自定义类方面有一些问题。 现在我有很多自定义类的重复模式条目(使用@Schema(实现=MyClass.class)),但至少需要的信息在那里。然而,我想找到一种方法来删除重复的模式条目,同时保留附加信息。 在一个讨论$ref和缺乏兄弟属性的github问题上,我发现了
我开发了一个带有Swagger注释的REST API。我已经能够展示一个炫耀的ui应用程序的api文档,非常好。 问题:根据我的注释,我试图使用swagger提供的url生成符合该规范的客户端。问题是,它似乎是不兼容的,或者至少,我不知道如何做swagger编辑器读取我的网址,并从那时起,产生客户。但是swagger编辑器向我报告了一些错误... 是否可以将我的带注释的 swagger api 与
我正在从带注释的java代码生成OpenAPI 3.0文档。但问题是,当我将@Schema注释添加到enum时,所有值都会消失。我正在使用Thorntail 2.3.0。最终使用microprofile openapi分数。 我知道我可以改变。yaml文件,但我需要直接从Java代码生成yaml。 这是我在github上的最小示例:https://github.com/pkristja/openA
我有以下代码,这是我的API的艺术 如果我有@ApiParam注释,@PathVariable就变成非必需的,所以如果我没有输入userId并通过Swagger UI发出请求,请求仍然会转到服务器,这会导致不必要的服务器错误。默认情况下,@Path变量的参数“必需”为true(因此,默认值为@PathVariable(name=“userId”,必需=true)),并且在该参数上没有@ApiPar