如何使用公共 swagger-generator docker 镜像生成客户端?

2023-12-26

我们有一个完全 Docker 化的 Web 应用程序,其中包含有效的 API Swagger 定义。该 API 在其自己的 docker 容器中运行,我们使用 docker-compose 来编排一切。我想根据位于以下位置的 Swagger 定义生成一个 Ruby 客户端http://api:8443/apidocs.json.

我已经仔细阅读了文档here https://github.com/swagger-api/swagger-codegen,这让我Swagger 的公共 docker 镜像 https://hub.docker.com/r/swaggerapi/swagger-generator/用于生成客户端和服务器代码。遗憾的是,该文档缺乏,并且没有提供使用 docker 映像实际生成客户端的示例。

The Dockerfile https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-generator/Dockerfile表示它的容器运行一个 Web 服务,我只能假设它是 dockerized 版本http://generator.swagger.io http://generator.swagger.io。因此,我希望能够使用以下命令生成客户端:

curl -X POST -H "content-type:application/json" -d \ '{"swaggerUrl":"http://api:8443/apidocs"}' \ http://swagger-generator:8080/api/gen/clients/ruby

这里运气不好。即使我已经确认了 swagger 定义是有效的,我仍然收到“无效的 swagger 定义”(npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocs.

有任何想法吗?


确实,您是对的,您所指的 docker 映像与以下位置使用的映像相同http://generator.swagger.io http://generator.swagger.io

您遇到的问题是输入参数不正确。

现在为了正确起见,请注意 swagger-generator 有一个 Web 界面。因此,一旦启动它,就像说明所示,在浏览器中打开它。例如(将 GENERATOR_HOST 替换为您计算机的 IP 地址):

docker run -d -e GENERATOR_HOST=http://192.168.99.100 -p 80:8080 swaggerapi/swagger-generator

然后你可以打开 swagger-uihttp://192.168.99.100

这里重要的部分是您可以使用 UI 查看调用语法。如果您要生成客户端,请转至http://192.168.99.100/#!/clients/generateClient选择要生成的语言,然后单击右侧的有效负载。更换swaggerUrl字段包含您的服务器地址,瞧。

您可以使用curl 中的输出来了解如何从命令行调用。从那里应该很容易。

请记住,仅仅因为第三方工具说 swagger 定义有效并不意味着它实际上是有效的。不过,我认为这不是你的问题,但第三方工具的里程可能会有所不同......

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

如何使用公共 swagger-generator docker 镜像生成客户端? 的相关文章

随机推荐

  • 修改ISAPI和CGI扩展

    我的 IIS 服务器有问题 如何使用 C 语言修改 ISAPI 元素 例如 ASP net V4 0 限制为 不允许 我想设置为 允许 如下图所示 我可以使用此代码添加元素 但我无法修改 using System using System
  • JSON - 斜杠不转义

    这是我的 PHP Json 脚本
  • 如何禁用警告数据表警告从行的数据源请求未知参数

    我的数据表中有两行 如下所示 tr td td td td td td tr tr td td tr 这些行对于数据表上的每条记录都会重复 正如您可以想象的那样 我总是收到此错误 并且只需要禁用它 除非您想弄清楚如何使其工作 那么如何禁用警
  • R 包文档:链接到整个包,而不是函数

    我想在我正在开发的一些函数的文档中引用另一个包 整个包 而不仅仅是其中的一个函数 我正在使用 Roxygen2 注释来记录我的包功能 我找不到使用 Roxygen2 创建整个第三方包的链接的方法 要链接到一个包函数 可以这样写 pkg fu
  • TDD:在重构代码的同时破坏所有现有的测试用例

    我已经开始在我的项目中遵循 TDD 但自从我开始 即使读了一些文章 我也很困惑 因为发展速度变慢了 每当我重构代码时 我都需要更改之前编写的现有测试用例 否则它们将开始失败 下面是我最近重构的一个类的例子 public class Sala
  • 如何使用 Javascript 进行替换和追加

    我有一个评论系统 我想在其中实现内联编辑 当有人知道一个好的插件或类似的东西时 请毫不犹豫地给我一个名字 并找到一个 Javascript 片段 它将文本替换为文本区域和文本作为该文本区域的值 但现在我需要向该文本区域添加一个按钮 提交按钮
  • Azure 应用服务 - 同步期间日期时间更改

    我正在开发一个使用 Xamarin Forms 和 Azure 应用服务 包括离线同步 的应用程序 在客户端有这样一段代码 appointment StartDate System DateTime Now 假设约会 开始日期是现在2017
  • 找到点击的li号

    我有一个标准清单 ul li a href blah 1 a li li a href blah 2 a li li a href blah 3 a li li a href blah 4 a li ul 还有我的 jQuery ul li
  • 如何加载和解析 SVG 文档

    背景 有许多与读取和解析 SVG 路径相关的未解答问题 用Java读取svg路径数据的最简单方法 https stackoverflow com questions 21973777 回复 使用 batik svg 解析器解析 svg 文件
  • chrome.notifications.update 无法按预期工作

    我有一些进度通知 我只想更新它 但它从 0 到 1 然后保持在 1 这是我的代码 var notifId uuidv4 var i 0 var notifOptions type progress iconUrl img GS icon p
  • 如何使用 AngularJS 动态创建 CSS 类

    我有一个 Angular JS 网站 我在其中使用来自 API 的数据 我想用它来动态创建 CSS 类 然后 该 CSS 类将格式化来自 API 的其他数据 并显示在 Angular JS 页面中 例如 有没有一种方法可以让 Angular
  • 如何在 Angular 中实现 Facebook 像素?

    我需要在一个有角度的项目中实现一个 facebook 像素 我的像素中有index html from src index html
  • 为什么要给 If 语句命名?

    我刚刚发现我可以为 For 和 While 语句命名 我知道如果您想中断或继续特定循环 它很有用 但我为什么要给 If 起个名字呢 看起来没什么用 name if true do something 这样编译没有问题 如果你有一个带有名称的
  • 如果我不提及目标分辨率,除了 @media 之外还有什么其他方法可以使网站做出适当的响应? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道如何制作一个网站 及其所有元素响应以适应不同的屏幕尺寸 字体 图像等 我做了这样的事情 media only screen a
  • 将 PEM 编码的 RSA 私钥转换为 AsymmetryKeyParameter

    我正在尝试 但失败 创建一种构造方法AsymmetricKeyParameter来自 PEM 编码的私钥 我怎样才能完成这个方法 好像是旧版本的BouncyCastle had a pemReader ReadObject 其结果可以被转换
  • 增加可变输入迭代器是否会使旧迭代器值失效?

    进一步满足输出迭代器要求的迭代器称为可变迭代器 不可变迭代器被称为常量迭代器 24 2 1 4 这表明您可以拥有一个可变输入迭代器 它满足输入和输出迭代器的要求 递增输入迭代器后 其旧值的副本不需要取消引用 24 2 3 然而 标准并没有对
  • 如何在多屏幕环境中知道 JFrame 是否在屏幕上

    我的应用程序用于多屏幕环境 应用程序在关闭时存储其位置并从最后一个位置开始 我通过致电获得该职位frame getLocation 如果框架位于主屏幕上或位于主屏幕的右侧 这会给我一个正值 位于主屏幕左侧屏幕上的框架的 X 值为负值 当屏幕
  • Java 枚举报错?

    当我尝试为枚举赋值时 出现以下错误 枚举状态中的构造函数状态不能应用于给定类型 状态 打开 0 为什么会发生这种情况以及如何解决它 到目前为止 这是我的代码 public enum Status STATUS OPEN 0 STATUS S
  • 如何使用外键测试 Django 中的模型

    我想确保我正在单独测试模型 对象 而不是作为一个庞大的系统 如果我有一个订单对象 并且它具有客户 付款 订单项等的外键 并且我想测试订单功能 则需要为所有相关数据创建固定装置 或在代码中创建它 我认为我真正需要做的是模拟其他项目 但如果我对
  • 如何使用公共 swagger-generator docker 镜像生成客户端?

    我们有一个完全 Docker 化的 Web 应用程序 其中包含有效的 API Swagger 定义 该 API 在其自己的 docker 容器中运行 我们使用 docker compose 来编排一切 我想根据位于以下位置的 Swagger