我如何使用公共的大摇大摆的docker图像来生成客户端?
我们有一个完全dockerized的Web应用程序,其API有效的Swagger定义。 API运行在它自己的docker容器中,我们使用docker-compose编排一切。 我想生成一个基于位于http://api:8443/apidocs.json
的Swagger定义的Ruby客户端。
我已经通过这里的文档,这导致我Swagger的公共docker图像生成客户端和服务器代码。 遗憾的是文档是缺乏的,并没有提供实际生成一个客户端与docker图像的例子。
Dockerfile指示它的容器运行一个Web服务,我只能假定是http://generator.swagger.io的dockerized版本。 因此,我希望能够使用以下命令生成客户端:
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
。
有任何想法吗?
事实上,你是正确的,你指的docker图像是在http://generator.swagger.io使用的相同的图像
你遇到的问题是input参数不正确。
现在要做对了,请注意,大摇大摆的发电机有一个networking界面。 所以一旦你启动它,就像说明书所说的那样,在浏览器中打开它。 例如(用您的机器的IP地址replaceGENERATOR_HOST):
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
select要生成的语言,然后单击右侧的有效负载。 将swaggerUrl
字段replace为服务器的地址,然后瞧。
您可以使用curl中的输出来弄清楚如何从命令行调用。 从那里应该很容易。
请记住,只是因为第三方工具说,这个swagger定义是有效的,并不意味着它实际上是。 不过,我不认为这是你的问题,但第三方工具的里程可能会有所不同…