Swagger 3.0.0 codegen 失败 java.lang.RuntimeException:缺少 swagger 输入或配置

2024-01-18

我使用 swagger 指定我的 API,我之前使用的是 2.0,现在根据我使用离线 swagger 编辑器指定 3.0.0 规范的文档,有新版本 3.0.0。准备好后,我下载了 json 文件,我将使用它生成 spring 服务器代码。我下载了swagger代码生成器 https://github.com/swagger-api/swagger-codegen

使用构建它mvn clean package然后我执行了以下命令:

java -jar <PARENT_DIR>/swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i <PARENT_DIR>/ServerCode/swagger.json -l spring -o <PARENT_DIR>/ServerCode

上面的命令给我以下错误:

[main] INFO io.swagger.parser.Swagger20Parser - reading from swagger.json
[main] INFO io.swagger.parser.Swagger20Parser - reading from swagger.json
[main] INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor - No .swagger-codegen-ignore file found.
Exception in thread "main" java.lang.RuntimeException: missing swagger input or config!
        at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:723)
        at io.swagger.codegen.cmd.Generate.run(Generate.java:285)
        at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)

Update :

我的 swagger.json 文件如下(这是我的试用项目,因此我在这里粘贴了我的 api 结构):

{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0.0",
    "title": "User Example",
    "license": {
      "name": "MIT"
    }
  },
  "servers": [
    {
      "url": "http://www.example.com//v1"
    }
  ],
  "paths": {
    "/user": {
      "post": {
        "summary": "API to create a new User",
        "operationId": "createUser",
        "tags": [
          "user"
        ],
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "description": "User data to be created",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Newly created User data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "404": {
            "description": "Unexpected Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnexpectedError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "User": {
        "required": [
          "id",
          "fname",
          "email"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "fname": {
            "type": "string"
          },
          "lname": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string"
          }
        }
      },
      "UnexpectedError": {
        "properties": {
          "message": {
            "type": "string",
            "example": "Something went wrong"
          }
        }
      },
      "AuthError": {
        "properties": {
          "message": {
            "type": "string",
            "example": "Authorization failed"
          }
        }
      },
      "InternalServerError": {
        "properties": {
          "message": {
            "type": "string",
            "example": "There is server side error while processing your request"
          }
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}

我尝试过构建 code-gen-cli3.0.0 https://github.com/swagger-api/swagger-codegen/tree/3.0.0分支也给出同样的错误。


我知道现在回答这个问题真的很晚了,但我通过一个简单的改变解决了这个问题。

在你的 json 文件中

change

{
  "openapi": "3.0.0",
  "info": {

to this

{
  "swagger": "3.0.0",
  "info": {

它将得到解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swagger 3.0.0 codegen 失败 java.lang.RuntimeException:缺少 swagger 输入或配置 的相关文章

随机推荐

  • 如何从 GitHub 构建 R 包?

    我尝试建立R 包的分支 https github com patcpsc rredis来自github 这个fork有一个新的错误修复 https github com bwlewis doRedis issues 10 我能够构建并安装来
  • 使散景的自定义 TapTool 适用于全息视图

    我想使用散景TapTool单击每个 URL 时打开不同的 URLholoviews Polygons 散景中的一个完美示例是散景文档 https docs bokeh org en latest docs user guide intera
  • Python pip包安装elastic-search-curator时出现RequestsDependencyWarning

    我通过以下命令安装了弹性搜索策展人 sudo pip install U elasticsearch curator 一切都安装好了 但是现在当我执行以下操作时 curator cli version 我收到以下依赖性警告 usr loca
  • javax.net.ssl.SSLHandshakeException:没有适当的协议(协议已禁用或密码套件不合适

    我知道有几个关于此错误的问题 但没有任何对我有帮助 我有在 gmail 服务器上发送带有附件的电子邮件的方法 效果很好 昨天我买了一台新的 mac mini m1 我尝试用这种方法发送电子邮件 但它引发了此错误 public static
  • Gson - 将嵌套对象序列化为属性

    有没有一种简单的方法可以将嵌套对象转换为 JSON 我正在尝试创建一个 JSON 对象来匹配后端 我在网络中使用 Retrofit 它使用 Gson 将对象转换为 JSON 我无权访问网络调用和转换之间的任何代码 因此我试图找到一种干净的方
  • 带有自定义项目的 JavaFx 2 ChoiceBox

    我有一堂课 例如 public class myClass int age String name public String toString return name public static ObservableList
  • Spark SQL 中的数组交集

    我有一个表 其中包含名为的数组类型列writer其值如下array value1 value2 array value2 value3 ETC 我在做self join获得数组之间具有共同值的结果 我试过 sqlContext sql SE
  • 解析错误:标识符“React”已被声明

    我正在尝试导入组件 但我无法做到这一点 我也尝试过 导出默认类 App 扩展 React Component 而不是类 App 扩展 Component 但这并不能解决我的问题 import React from react import
  • CSS如何让元素淡入然后淡出?

    我可以通过使用以下 css 将其类更改为 elementToFadeInAndOut 来制作不透明度为零的淡入元素 elementToFadeInAndOut opacity 1 transition opacity 2s linear 有
  • 相关对象的 Django 模型约束

    我有以下模型代码 class Tag models Model user models ForeignKey auth User on delete models CASCADE class Activity models Model us
  • 将 AVPackets 复用到 mp4 文件中

    我正在开发一个工具 它从网络接收 h 264 实时流 发送者是硬件编码器 缓冲最后 x 分钟 并在触发时创建最后 x 分钟的视频文件 我的工具能够接收实时流并使用 boost serialization 缓冲 AVPackets 此外 我可
  • EF 不会从表中的外键生成外键关联[重复]

    这个问题在这里已经有答案了 我有一个表 tblEvent 和另一个表 tblContact tblEvent 中有一个字段 ContactID 它通过外键链接到 tblContact 中的 ContactID 我已经三重检查了 外键在数据库
  • 具有嵌套突变的 Graphql?

    如果可能的话 我正在尝试找出如何使用 graphql 突变来改变嵌套对象 例如我有以下架构 type Event id String name String description String place Place type Place
  • SPARQL 支持 protege 5

    protege 5 2 0 SPARQL 查询插件 2 02 对 SPARQL 的支持程度如何 我尝试使用 FILTER STRSTARTS STR subject STR prefix 我得到 未知函数 http www w3 org 2
  • 以编程方式调用 ASP.NET Core 请求管道

    Question 考虑到我有 HTTP 动词 路由 标头和正文有效负载 是否有一种方法可以从我自己的应用程序中以编程方式调用 ASP NET Core 请求管道 背景 在某些用例中 我们的 ASP NET Core 应用程序的 WebAPI
  • 示例代码 MoviePlayer 问题

    我之前已经发布过这个问题 但无法得到答案 所以我再次发布 是关于从 iPhone 开发者网站下载的 MoviePlayer 示例 当我按下电影播放器 控制模式中的 完成 按钮时 电影完成并退出到主窗口查看 同时调用了moviePlayBac
  • tkinter 列表框用 python 拖放

    谁能指出我在哪里可以找到有关制作能够拖放项目以重新排列的列表框的信息 我发现了一些与 Perl 相关的内容 但我对该语言一无所知 而且我对 tkinter 还很陌生 所以这很令人困惑 我知道如何生成列表框 但我不确定如何通过拖放对其进行重新
  • 没有 robolectric 的模拟 android.os.BaseBundle

    我正在尝试对此代码进行单元测试 Bundle cidParam String accountId Bundle params new Bundle 1 params putString Params CID accountId return
  • 有没有办法通过Tag属性获取XAML元素?

    Is there any way to get the XAML element by its tag value 我的代码是这样的
  • Swagger 3.0.0 codegen 失败 java.lang.RuntimeException:缺少 swagger 输入或配置

    我使用 swagger 指定我的 API 我之前使用的是 2 0 现在根据我使用离线 swagger 编辑器指定 3 0 0 规范的文档 有新版本 3 0 0 准备好后 我下载了 json 文件 我将使用它生成 spring 服务器代码 我