Spring引导可重用的springdoc openapi参数注释



我有几个控制器类,它们都需要一个标头参数。为了记录swagger,我将这个@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
}

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

所以部分修复是创建我自己的自定义界面,如下所示:

@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在端点之间不同,我就不能重用它。我不知道如何将一些参数传递给我的自定义注释以覆盖默认值。。。

最新更新