小编att*_*and的帖子

提供单独的 OpenApi 定义

我们有一项服务提供 2 个独立的 Rest API。一种是我们的客户使用的简单 API,另一种是 Web 应用程序使用的内部 API。

\n

我们的客户无法访问 Web API,因此我希望能够提供 2 种独立的 OpenApi 规范,一种适用于我们的客户,另一种适用于我们的 Web 开发人员。

\n

我找到了一种非常简单的方法来实现我想要的目标,即创建端点、检索 OpenApi 文档并过滤掉属于客户 API 的标签。

\n
@Inject\nOpenApiDocument document;\n\n@Operation(hidden = true)\n@GET\n@Produces("application/yaml")\npublic Response customer() throws IOException {\n    OpenAPI model = FilterUtil.applyFilter(new MyTagFilter("mytag"), document.get());\n\n    String result = OpenApiSerializer.serialize(model, Format.YAML);\n\n    return Response.ok(result).build();\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

一个问题是,在开发模式下注入的 OpenApiDocument 实例为 null。OpenApiDocumentProducer 似乎缺少 OpenApiHandler 类中存在的一些类加载器魔法。另一个小问题是过滤器 \xe2\x80\x9cMyTagFilter\xe2\x80\x9d 还需要过滤掉任何标记的 PathItem 未使用的模式,并且代码变得有些狡猾。

\n
    \n
  • 有更好的方法来解决我的问题吗?
  • \n
  • 是否可以修复 OpenApiDocumentProducer 以在开发人员模式下提供非空且最新的 OpenApiDocument?
  • \n
\n

类似问题:Quarkus:提供多个 OpenApi/Swagger-UI 端点

\n

openapi quarkus

5
推荐指数
1
解决办法
532
查看次数

标签 统计

openapi ×1

quarkus ×1