【问题标题】:Swagger Integration in Jakarta EE 8 projectJakarta EE 8 项目中的 Swagger 集成
【发布时间】:2021-03-03 19:40:21
【问题描述】:

我正在使用 Angular 11 前端和 Jakarta EE 8 后端开发一个 Web 应用程序。我的后端由 JAX-RS 端点组成,我希望为此提供 Swagger 2.0 文档。

在另一个 Spring-Boot 项目中,我使用了 Springfox,我想知道 Jakarta EE 世界中是否有对应物。 我尝试了以下

    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-jaxrs</artifactId>
        <version>1.6.2</version>
    </dependency>

但这只会产生没有 UI 的 swagger.json。此外,我想阅读 Swagger 注释中的文本,例如@ApiOperation 来自属性文件,就像我对 Spring 所做的那样,例如

@ApiOperation(value = "${users.getAll.value}", notes = "${users.getAll.notes}")

有没有可以提供这些功能的库?

值得一提:我的项目使用纯 Java/Jakarta EE API 并在 JBoss EAP 7.2.8 上运行,因此没有特定的 Jersey 或 RESTeasy 实现

<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-api</artifactId> 
    <version>8.0.0</version>
    <scope>provided</scope> 
</dependency>

【问题讨论】:

  • 你找到解决办法了吗?
  • 下面没有我的答案

标签: jakarta-ee swagger-ui swagger-2.0


【解决方案1】:

添加 swagger-ui 依赖项可能会有所帮助。

<dependency>
    <groupId>org.microprofile-ext.openapi-ext</groupId>
    <artifactId>swagger-ui</artifactId>
    <version>1.0.3</version>
</dependency>

来源:
https://ralph.blog.imixs.com/2020/05/08/microprofile-openapi-and-swagger-ui/ https://github.com/microprofile-extensions/openapi-ext/tree/master/openapi-ui

【讨论】:

  • 谢谢,但上述依赖来自于 openAPI 3.0 的 microprofile。是否需要任何额外的配置?对于 swagger 2.0,根据这个链接,需要一个 maven 插件来下载 swagger ui synaptiklabs.com/posts/…
【解决方案2】:

我的要求是:

  1. 一个同时生成 json 和 ui 的库
  2. 从属性文件中读取
  3. 扫描 ExceptionMapper 类

OpenAPI-2.0 似乎没有解决方案。所以我使用以下链接来集成 swagger-ui (所以只有第一个要求以某种方式完成) https://synaptiklabs.com/posts/adding-swagger-to-a-javaee-project-javaee-series-2-part-2/

但是对于 OpenAPI-3.0,Eclipse Microprofile OpenAPI api 值得一试

 <!-- 1. OpenAPI API -->
<dependency>
    <groupId>org.eclipse.microprofile.openapi</groupId>
    <artifactId>microprofile-openapi-api</artifactId>
    <version>${microprofile-openapi-api-version}</version>
</dependency>
<!-- 2. Swagger-ui -->
<dependency>
    <groupId>org.microprofile-ext.openapi-ext</groupId>
    <artifactId>openapi-ui</artifactId>
    <version>${openapi-ui-version}</version>
</dependency>

但是我无法自己测试它,因为我正在开发 JBOSS EAP-7.2.9 并且从版本 7.3.1 XP 1.0.0 开始支持上述 API

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2023-01-03
    • 2021-01-19
    • 1970-01-01
    • 2020-10-08
    • 2021-04-14
    相关资源
    最近更新 更多