Har*_*ren 9 npm swagger docker swagger-ui
https://github.com/swagger-api/swagger-ui上的自述文件指定可以使用您自己的文件运行Swagger-UI
docker run -p 80:8080 -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui
Run Code Online (Sandbox Code Playgroud)
如果我把它翻译成我就能工作
docker build . -t swagger-ui-local && \
docker run -p 80:8080 -e SWAGGER_JSON=/foo/my-file.json -v $PWD:/foo swagger-ui-local
Run Code Online (Sandbox Code Playgroud)
但是,这忽略了我当地的变化.
我可以用我的本地更改
npm run dev
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何让这个开发服务器运行除Petstore示例以外的任何其他东西.
任何人都可以帮我把两者结合起来,所以我可以用本地代码更改和我自己的swagger.json运行swagger-ui吗?
小智 8
确保您正在安装正确的本地目录.
在当地,我有我的招摇配置$PWD/src/app/swagger/swagger.yaml
.运行以下工作正常:
docker run -p 80:8080 -e SWAGGER_JSON=/tmp/swagger.yaml -v `pwd`/src/app/swagger:/tmp swaggerapi/swagger-ui
Run Code Online (Sandbox Code Playgroud)
只需刷新Swagger-UI页面或单击标题中的"浏览"按钮,即可触发从YAML文件刷新数据.
小智 8
我找到这个主题是因为我想查看本地 swagger 文件的可视化表示,但似乎无法让 swagger-ui(在 docker 中运行)显示 petstore 以外的任何内容。
最终,我的问题是理解 -e SWAGGER_JSON 和 -v 标志,所以我想在这里解释它们。
-v <path1>:<path2>
Run Code Online (Sandbox Code Playgroud)
此选项表示“在路径 <path2> 上的 swagger-ui docker 容器内从我的本地文件系统安装路径 <path1>”
-e SWAGGER_JSON=<filepath>
Run Code Online (Sandbox Code Playgroud)
此选项表示“默认情况下,使用 docker 容器的文件系统在 <filepath> 处显示文件的 swagger。” 这里的重要部分是这个文件路径应该考虑你如何设置 <path2> 以上
综合起来,我得到了以下结果:
docker run -p 8085:8080 -e SWAGGER_JSON=/foo/swagger.json -v `pwd`:/foo swaggerapi/swagger-ui
Run Code Online (Sandbox Code Playgroud)
这用英语说:“在端口 8085 上运行我的 swagger-ui 实例。在 docker 容器中将我当前的工作目录挂载为 '/foo'。默认情况下,在 '/foo/swagger.json' 中显示 swagger 文件。”
需要注意的重要一点是,我在当前工作目录中有一个名为 swagger.json 的文件。此命令将我当前的工作目录挂载为 docker 容器中的 /foo。然后,swagger UI 可以将我的 swagger.json 提取为 /foo/swagger.json。
这是我最终解决这个问题的方法,它还允许您拥有多个 YML 文件:
docker run -p 80:8080 \
-e URLS_PRIMARY_NAME=FIRST \
-e URLS="[ \
{ url: 'docs/first.yml', name: 'FIRST' } \
, { url: 'docs/second.yml', name: 'SECOND' } \
]" \
-v `pwd`:/usr/share/nginx/html/docs/ \
swaggerapi/swagger-ui
Run Code Online (Sandbox Code Playgroud)
我想出来了npm run dev
:
将my-file.json
中dev-helpers
的文件夹。然后它可以从 上的搜索栏中找到http://localhost:3200/
。
自动加载它打开服务器时,可以改变dev-helpers/index.html
通过改变
url: "http://petstore.swagger.io/v2/swagger.json"
Run Code Online (Sandbox Code Playgroud)
到
url: "my-file.json"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6714 次 |
最近记录: |