我在我的 swagger 输出 json 文件中包含信息对象时遇到问题。 我正在使用https://github.com/swagger-api/swagger-core 中的 swagger-maven-plugin 。 这是我尝试过的...

  1. 我试过在我的 pom.xml 中包含一个信息对象,就像这样......

     <plugin> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-maven-plugin</artifactId> <version>2.0.9</version> <configuration> <outputFileName>openapi</outputFileName> <outputPath>${project.build.directory}/openapi-json</outputPath> <outputFormat>JSONANDYAML</outputFormat> <resourcePackages> <package>packageName</package> </resourcePackages> <info> <version> 1.0 </version> <title> Swagger Pet Sample App Config File </title> <description> This is a sample server Petstore server. You can find out more about Swagger. </description> <termsOfService>http://swagger.io/terms/ </termsOfService> <license> <name> Apache2.0 </name> <url> http://www.apache.org/licenses/LICENSE-2.0.html </url> </license> <contact> <email> george@aol.com </email> </contact> </info> <prettyPrint>TRUE</prettyPrint> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>resolve</goal> </goals> </execution> </executions> </plugin> </plugins>

我还尝试在我的路径中添加一个 openapi-configuration.yaml 文件。 该文件看起来像这样。 我从插件库自述页面复制了这个文件,所以内容与我上面的第一种方法不同。

    resourcePackages:
- packageName
prettyPrint: true
cacheTTL: 0
openAPI:
  info:
    version: '1.0'
    title: Swagger Pet Sample App Config File
    description: 'This is a sample server Petstore server.  You can find out more
      about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net,
      #swagger](http://swagger.io/irc/).  For this sample, you can use the api key
      `special-key` to test the authorizat ion filters.'
    termsOfService: http://swagger.io/terms/
    contact:
      email: apiteam@swagger.io
    license:
      name: Apache 2.0
      url: http://www.apache.org/licenses/LICENSE-2.0.html

这些方法都不起作用。

我错过了什么? 干杯。

#1楼 票数:1


更新我按如下方式工作……在我的 pom.xml 中……

            <plugin>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-maven-plugin</artifactId>
            <version>2.0.9</version>                
            <configuration>
                <outputFileName>openapi</outputFileName>
                <outputPath>${project.build.directory}/openapi-json</outputPath>
                <outputFormat>JSONANDYAML</outputFormat>
                <resourcePackages>
                    <package>packageName.services</package>
                </resourcePackages>
                <configurationFilePath>${project.basedir}/openapi.yaml</configurationFilePath>              
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>resolve</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

然后在单独的配置 YAML 文件中...

  openAPI:
  info:
    version: '1.0'
    title: API Documentation
    description: 'This is documentation for the Foosite API. You can find out more about FooSite at FooSite.org.'
    termsOfService: http://foosite.org/terms/
    license:
      name: Apache2.0
      url: http://www.apache.org/licenses/LICENSE-2.0.html
    contact:
      email: george@aol.com
prettyPrint: true

#2楼 票数:0

“info”标签应该在“apiSource”标签下,如下所示

<configuration>
    <apiSources>
        <apiSource>
            <springmvc>true</springmvc>
            <locations>com.xx.yyy.oooo</locations>
            <schemes>http,https</schemes>
            <host>@YYYY@</host>
            <basePath>@XXXX@</basePath>
            <info>

            </info>

#3楼 票数:0

在您的 JAX-RS 应用程序类中,使用@OpenAPIDefinition注释按照OpenAPI 规范的架构定义您的 swagger 信息:

package test.webapp.rest.application;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
    
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.servers.Server;
import io.swagger.v3.oas.annotations.info.Info;
@ApplicationPath("/rest/*")
@OpenAPIDefinition(
            info = @Info(title="This is my title", 
            description="This is my description", version="9.9.9"), 
            servers = @Server(url="http://localhost:8080/test-webapp-rest/rest"))
public class RESTApplication extends Application{
    ...
}

在你的 pom.xml 中,将这个 Application Class 的包添加到 swagger-maven-plugin 的“resourcePackages”中:

        <!-- GENERATE openapi.json in /src/main/webapp/swagger-ui-->
        <plugin>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-maven-plugin</artifactId>
            <version>2.1.5</version>
            <configuration>
                <outputFileName>openapi</outputFileName>
                <outputPath>${basedir}/src/main/webapp/swagger-ui</outputPath>
                <outputFormat>JSONANDYAML</outputFormat>
                <resourcePackages>
                    <package>test.webapp.rest.application</package>
                    <package>test.webapp.rest.resource</package>
                </resourcePackages>
                <prettyPrint>TRUE</prettyPrint>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>resolve</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

第二步是在 JSON 或 YAML 中生成信息的必要步骤:

{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "This is my title",
    "description" : "This is my description",
    "version" : "9.9.9"
  },
  "servers" : [ {
    "url" : "http://localhost:8080/test-webapp-rest/rest",
    "variables" : { }
  } ],
  ...
}


openapi: 3.0.1
info:
  title: This is my title
  description: This is my description
  version: 9.9.9
servers:
- url: http://localhost:8080/test-webapp-rest/rest
  variables: {}

  ask by GNG translate from so

未解决问题?本站智能推荐:

1回复

swagger-maven-plugin v3 中没有描述文件

我想从 swagger V2 迁移到 OpenAPI v3。 对于 swagger V2,我使用com.github.kongchen:swagger-maven-plugin插件根据我的代码生成我的 swagger 文件。 我成功迁移到io.swagger.core.v3:swagger-mav
2回复

Swagger/OpenAPI 3.0 生成 - 带有来自接口的通用列表的端点未显示在文档中

我正在尝试使用 Swagger/OpenAPI 3.0 为 Java EE 应用程序生成 API 文档/swagger 客户端,但文档中一直缺少一种方法。 我创建了一个示例项目来澄清我的问题: 新的,不太复杂的例子: 我得到了一个带有列表的接口作为我的 REST 端点的参数: 我将实现此服务
1回复

如何在swagger-maven-plugin 3.1.0中设置替代模型

如何在swagger-maven-plugin 3.1.0和Swagger UI 2.0(或更新版本)中设置替代模型? 最近,我们将Swagger UI从1.2升级到了2.0,并将swagger-maven-plugin从2.3升级到了3.1.0。 似乎swagger-maven-p
1回复

swagger-maven-plugin不会为各个请求映射生成“路径”元素

我有一个简单的端点,我想用swagger-maven-plugin处理。 生成的swagger.conf不会反映单个@ApiOperations的正确“paths:”。 api的根是“/ api”,我想将GET和PUT的端点添加到“/ api / cluster”。 相反,swagger.
2回复

使用Javadocs生成Swagger文档

我想为现有的一组RESTful API构建Swagger文档。 我有以下要求: 离线生成Swagger Doc(我使用了http://kongchen.github.io/swagger-maven-plugin/ )。 这个插件帮助我在编译期间生成Swagger文档。 读
2回复

使用maven插件的离线招摇文档

我正在尝试生成swagger文档,因为我需要启动服务器。 我想离线生成swagger文档(没有启动服务器),我只是得到了这个链接swagger-codegen-maven-plugin 但是当我将上面的插件添加到POM.xml中时(假设在maven build期间生成HTML文档我觉得)
1回复

未生成swagger maven插件文档

我试图使用Swagger maven插件生成swagger文档 但是没有创建任何内容,这是我输入的详细插件: 它没有创建任何文档。 然后我尝试了kongchen swagger maven插件 插入: 相关性: 仍然没有生成文档。 我哪里做错了? 请帮我
1回复

开放 API 代码生成器 Maven 插件使用旧的 Swagger 2 注释而不是 Swagger 3 注释

我正在使用 Open API 代码生成器 Maven 插件从文件生成 Open API 3.0。 我在我的 pom.xml 中使用这个插件: 该插件生成的 API 没有任何问题,但它没有使用 Swagger v3 注释,而是使用旧的 Swagger 注释。 例如,使用@ApiParam注释参数,