如何在本地服务 go-swagger?

how to serve go-swagger locally?

我有一个 yaml 格式和 json 格式的 swagger 文件。我可以在 swaggers 在线查看器 https://editor.swagger.io/ 上查看 yaml 文件,但是当我尝试在本地提供文件时,出现错误:

webbrowser: tried to open "http://localhost:40335/docs", no screen found

使用命令后:

swagger serve -F=swagger swagger.yaml

要重新创建此场景,您可以克隆此存储库:https://github.com/go-swagger/go-swagger/tree/master/fixtures/goparsing/petstore

然后运行以下命令(MAC-OS)生成yaml文件:

注意:您可能必须 运行 在项目的根目录中使用 sudo -s

这些命令

可在此处找到 windows 安装说明 https://goswagger.io/install.html

下载 go-swagger

  1. docker pull quay.io/goswagger/swagger
  2. alias swagger="docker run --rm -it --user $(id -u):$(id -g) -e GOPATH=$HOME/go:/go -v $HOME:$HOME -w $(pwd) quay.io/goswagger/swagger"
  3. swagger version 验证安装

生成 swagger Yaml 4.swagger generate spec -o ./swagger.yaml --scan-models

现在应该会生成 swagger 文件,但由于某种原因,使用命令 swagger serve -F=swagger swagger.yaml 会出现上述错误。

由于您 运行 它位于 docker 容器中并且其中没有浏览器,因此您会收到 no screen found 错误。

这可以通过将 --no-open 选项传递给 swagger serve ... 来解决。
此外,通过传递 --port 选项指定固定端口。

来源:https://goswagger.io/usage/serve_ui.html