Spring boot可重用的springdoc-openapi参数注释

问题描述 投票:0回答:1

我只有几个控制器类,它们都需要标头参数。为了记录大张旗鼓,我正在向所有端点添加此@Parameter批注:

    @Parameter(in = ParameterIn.HEADER, description = "some description", name = "some name", content = @Content(schema = @Schema(allowableValues = {VALUE1, VALUE2, VALUE3, VALUE4})))
    @GetMapping
    public void method(@RequestHeader .....) {
    //some code here
    }

问题是我不喜欢在控制器方法中重复相同的注释的想法。是否有一个很好的干净解决方案,在此处具有可重复使用的注释?

java spring-boot swagger
1个回答
0
投票

因此,部分解决方法是像这样创建我自己的自定义界面:

@Target({PARAMETER, METHOD, FIELD, ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Parameter(in = ParameterIn.HEADER, description = "some description", name = "some name", content = @Content(schema = @Schema(allowableValues = {VALUE1, VALUE2, VALUE3, VALUE4})))
public @interface MyCustomAnnotation {
}

这样,我可以重用它并保存一些代码。问题是某些值不同时。例如,如果端点之间的allowableValues不同,则无法重用该端点。我不知道如何将一些参数传递给自定义批注以覆盖默认值...

© www.soinside.com 2019 - 2024. All rights reserved.