当前位置: 首页 > 知识库问答 >
问题:

通过gradle插件的OpenAPI codigen: UI不正确显示

阮俊弼
2023-03-14

我正试图通过gradle插件测试openapi代码生成器。所以,我有。yml文件和文档(在中运行)https://editor.swagger.io/,看起来很酷)

openapi: 3.0.2
info:
  title: Testing docs
  version: 1.0.0
tags:
  - name: Registration
paths:
  /registration:
    post:
      tags:
        - Registration
      summary: Register user
...

这是我的一部分build.gradle

plugins {
    id "org.openapi.generator" version "5.0.1"
}

def sDir= "$buildDir/generated"
openApiGenerate {
    generatorName = "spring"
    inputSpec = "$rootDir/src/main/resources/documentation/openapi.yml"
    outputDir = "${sDir}"
    apiPackage = "generated.api"
    invokerPackage = "generated.invoker"
    modelPackage = "generated.model"
    configOptions = [
            interfaceOnly: "true",
            useTags: "true"
    ]
}
...

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springdoc:springdoc-openapi-ui:1.5.2'
    implementation 'io.springfox:springfox-swagger2:3.0.0'
    implementation 'org.openapitools:jackson-databind-nullable:0.2.1'
}

我已经用@Tag和@Api注释了大量生成的接口,实现了其中的一些,但是在/swagger用户界面上。html我看不到标签。比如,当我运行未实现的请求时,我得到了“未实现”状态,但我看不到正确的ui——它看起来是自动生成的,就像在方法上不使用任何招摇过市的注释一样。我只能认为我弄乱了一些依赖关系,但我真的找不到线索。

共有1个答案

罗翔
2023-03-14

您看到的ui不是从用于生成代码的留档. yml文件生成的。相反,ui是从生成的代码中生成的,它有自己的注释,目前是springfox注释,是swagger2注释,而不是openapi 3注释(尽管您的原始文件是openapi 3)。

生成的openapi 3注释支持即将推出,但在任何情况下,简而言之,你应该自己完成丢失的注释和必要的bean,但这种方式使得很难将生成的openapi定义与原始留档文件相匹配。

幸运的是,还有一个更好的选择:只需将yml文件添加到src/main/resources/static中,然后将这一行添加到应用程序中。属性文件:

springdoc.swagger-ui.url=/<your_file>.yml

如前所述https://springdoc.org/#how-可以使用自定义jsonyml文件而不是生成的文件。您已经具有springdoc ui依赖项,因此不需要再添加任何依赖项。

这将忽略代码注释,并直接从文档生成ui。yml文件

 类似资料:
  • 因此,基本上我使用了下面的代码,它似乎将所有内容完美地放入了查询中,但是,我仍然得到了错误的产品。例如,我请求的产品类别为“冬季”,但仍收到“四季”类别的产品 这是我的密码: print_r返回以下内容: WP_查询对象([Query]=

  • 当用户选择一个标记时,我只想显示包含该标记的博客。例如,当一个用户选择了'c''标签时,只会显示带有该标签的帖子。 我的设置如下:我有一组包含post标签的博客,其中包含标签: null 这将显示blog-thumbnail组件 下面的代码部分是我的问题所在。它不起作用: 我在这方面花了大量的时间。有人能解释我做错了什么吗?

  • 寻找Spring启动gradle插件,我可以使用gradle 2版本内的插件DSL。我喜欢去掉buildScript定义,并使用类似于 https://plugins.gradle.org/似乎根本不包含Spring靴。

  • 我正在尝试建立一个基本的Gradle项目。我的构建。gradle文件如下。我一直得到下面的错误。我不明白,因为你可以在这里找到插件。。。我想我的目标是:https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin 更新:如果我注释掉Kotlin行,Spring Boot插件也会发生同样的事情。这不仅仅针对K

  • 有人能告诉我代码有什么问题吗?它只显示第一行和表头information.thks

  • 我正在尝试使用一个名为'jQuery.InstagramFeed'的库,它允许我在不使用访问令牌的情况下显示用户feed中的图像。所以,我一直在尝试使用它,但是,出于某种原因,它并没有向我展示任何东西。 我已经研究了几个星期了,我已经尝试了在这里的很多帖子(以及其他论坛)中提出的很多解决方案,比如下面这些: TypeError:$不是函数调用jQuery函数 “未捕获的TypeError:$不是函