我正在开发一个休息应用程序。
某些端点需要自定义标头参数,与授权无关。我使用 jax-rs NameBinding 创建了一个自定义注释。这是一个使用示例:
@GET
@RequiresBankHeader
public int get(
@HeaderParam("bank")
@Parameter(ref = "#/components/parameters/banks")
String bank) {
return someService.getSomeInformation();
}
有一个提供程序拦截此调用并使用标头参数中的信息执行一些例程。
问题是我必须在任何地方重复 '@HeaderParam("bank") @Parameter(ref = "#/components/parameters/banks") String bank',这样它才会出现在 Swagger 中,即使服务类没有需要它。我至少能够使用 ref = "#/components/parameters/banks" 重用参数定义,并在 OpenAPI.yml 文件中声明它,Quarkus 可以很好地与生成的代码合并。
但我也想创建和拦截器,以便在存在 RequiresBankHeader 注释时动态添加 OpenApi 定义。
有没有办法做到这一点?