繁体   English   中英

在 swagger maven 插件配置中包含 info object

Including info object in swagger maven plugin configuration

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在我的 swagger output Z466DEEC76ECDF5FCA6D38571F6324 文件中包含信息 object 时遇到问题。 我正在使用来自https://github.com/swagger-api/swagger-core的 swagger-maven-plugin。 这是我尝试过的...

  1. 我试过在我的 pom.xml 中包含一个信息 object 像这样......

     <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 文件。 该文件看起来像这样。 我从插件 repo 自述文件页面复制了这个文件,所以内容与我上面的第一种方法不同。

    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

这些方法都不起作用。

我错过了什么? 干杯。

3 个回复

更新我得到这个工作如下......在我的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

“信息”标签应位于“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>

在您的 JAX-RS 应用程序 Class 中,使用@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 中,将此应用程序 Class 的 package 添加到 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: {}
1 Jersey + Swagger + Swagger-UI + Maven 配置

我第一次尝试使用 Jersey 和 Maven 大摇大摆,我想知道我是否走上了正确的道路。 我有 jersey、maven 和 swagger 在我的本地计算机上工作。 很快,我想将它部署到不同的环境并包含 swagger-ui。 如果我将 web.xml 文件配置为&lt;param-val ...

2 用maven配置swagger-ui

我正在将我的JAX-RS REST项目与Swagger集成。 我阅读了很多文档和教程,我最喜欢的数字如下(感谢Philipp Hauer的博客 ): 这个形象帮助我理解了Swagger的工作原理。 在我了解了Swagger如何工作之后,我修改了我的pom.xml 。 我 ...

6 如何摆脱IntelliJ Idea中的Maven插件配置错误

我在IntelliJ Idea中的 &lt;src /&gt;和&lt;dest /&gt;具有红色。 是否可以解决pom.xml解析错误? 优选的方法是不禁用检查。 编辑: IntelliJ Idea屏幕截图,所以我的意思很清楚: 另外,项目模块似乎有一个错误 ...

8 Maven 插件:未通过 pom 中的配置参数

我下面Apache的指南,以开发Java插件的说明这里。 我想按照说明使用&lt;configuration&gt;标签将参数从 pom 传递给插件,但插件没有收到它们。 这是 pom.xml 这是插件 mojo,MyMojo.java: 从命令行传递参数确实有效,例如: 使参数成为必 ...

9 Maven包含另一个用于插件配置的pom

有没有办法在maven pom中包含另一个pom或信息? 我有几个基本上不相关或有不同父母poms的poms。 然而,对于包装,需要具有与所有项目相同的清单。 所以目前我有一个pom: 等等 我想避免将此配置粘贴到所有几个pom。 那么如何在没有继承的情况下共享 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM