首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用本地代码更改和我自己的swagger.json运行swagger?

如何使用本地代码更改和我自己的swagger.json运行swagger?
EN

Stack Overflow用户
提问于 2017-09-16 17:28:09
回答 8查看 17.8K关注 0票数 15

https://github.com/swagger-api/swagger-ui上的自述文件指定Swagger-UI可以使用您自己的文件运行,如下所示

代码语言:javascript
运行
复制
docker run -p 80:8080 -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui

如果我把它翻译成

代码语言:javascript
运行
复制
docker build . -t swagger-ui-local && \
  docker run -p 80:8080 -e SWAGGER_JSON=/foo/my-file.json -v $PWD:/foo swagger-ui-local

然而,这忽略了我的本地更改。

我可以用以下方法运行本地更改

代码语言:javascript
运行
复制
npm run dev

但我不知道如何让这个dev服务器运行除Petstore示例之外的其他任何东西。

谁能帮我把这两者结合起来,这样我就可以用本地代码更改和我自己的swagger.json运行swagger了吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2017-09-16 19:02:10

我为npm run dev想出了办法

my-file.json放在dev-helpers文件夹中。然后它就可以从http://localhost:3200/上的搜索栏中获得。

若要在打开服务器时自动加载dev-helpers/index.html,请更改

代码语言:javascript
运行
复制
url: "http://petstore.swagger.io/v2/swagger.json"

代码语言:javascript
运行
复制
url: "my-file.json"
票数 5
EN

Stack Overflow用户

发布于 2018-05-10 01:49:43

确保卷正在挂载正确的本地目录。

在本地,我在$PWD/src/app/swagger/swagger.yaml中使用了我的swagger配置。运行以下操作很好:

代码语言:javascript
运行
复制
docker run -p 80:8080 -e SWAGGER_JSON=/tmp/swagger.yaml -v `pwd`/src/app/swagger:/tmp swaggerapi/swagger-ui

只需刷新Swagger-UI页面或单击标题中的“探索”按钮即可触发YAML文件中数据的刷新。

您还可以指定BASE_URL摘录自自夸-安装

docker run -p 80:8080 -e BASE_URL=/swagger -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui

票数 15
EN

Stack Overflow用户

发布于 2018-09-25 13:22:50

我之所以找到这个主题,是因为我希望看到本地swagger文件的可视化表示,但似乎无法获得swagger(运行在docker中)来显示除petstore以外的任何内容。

最终,我的问题是理解-e SWAGGER_JSON和-v标志,所以我想在这里解释它们。

代码语言:javascript
运行
复制
-v <path1>:<path2>

此选项表示“将路径从我的本地文件系统安装在路径上的swagger-ui停靠容器中”。

代码语言:javascript
运行
复制
-e SWAGGER_JSON=<filepath>

此选项表示“默认情况下,在使用docker容器的文件系统时显示文件的显示”。这里最重要的是,这个文件应该考虑到您在上面设置的内容。

把所有这些放在一起,我最终得到了以下结果:

代码语言:javascript
运行
复制
docker run -p 8085:8080 -e SWAGGER_JSON=/foo/swagger.json -v `pwd`:/foo swaggerapi/swagger-ui

这里用英语写着:“在端口8085上运行我的swagger-ui实例。将我当前的工作目录安装为'/foo‘在docker容器中。默认情况下,在’/foo/swagger.json‘处显示swagger文件。”

需要注意的是,我的当前工作目录中有一个名为swagger.json的文件。此命令将我当前的工作目录挂载为/foo。然后,swagger可以拿起我的swagger.json作为/foo/swagger.json。

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

https://stackoverflow.com/questions/46256588

复制
相关文章

相似问题

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