首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用公共swagger生成器docker镜像来生成客户端?

如何使用公共swagger生成器docker镜像来生成客户端?
EN

Stack Overflow用户
提问于 2016-09-28 01:00:50
回答 1查看 4.6K关注 0票数 9

我们有一个完全停靠的web应用程序,并为API定义了有效的Swagger。API在自己的docker容器中运行,我们使用docker-compose来编排所有内容。我想基于位于http://api:8443/apidocs.json的Swagger定义生成一个Ruby客户端。

我已经阅读了文档here,它引导我使用Swagger's public docker image来生成客户端和服务器代码。遗憾的是,文档很少,也没有提供实际生成带有docker镜像的客户端的示例。

Dockerfile指示它的容器运行web服务,我只能假设这是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定义”,即使我已经用(npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocs确认了swagger定义是有效的。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-28 11:35:52

确实,您是对的,您所指的docker图像与http://generator.swagger.io中使用的图像相同

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

现在为了得到正确的结果,请注意swagger生成器有一个web界面。因此,一旦您启动它,就像说明所说的那样,在浏览器中打开它。例如(将GENERATOR_HOST替换为您计算机的IP地址):

代码语言:javascript
复制
docker run -d -e GENERATOR_HOST=http://192.168.99.100 -p 80:8080 swaggerapi/swagger-generator

然后,您可以在http://192.168.99.100上打开swagger-ui

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

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

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39730438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档