目录 go-swagger

go-swagger 是一个 Golang 的第三方库,是一个 Swagger 2.0(aka OpenAPI 2.0)的 Golang 实现。

  • Github:https://github.com/go-swagger/go-swagger

go-swagger 内含了许多包,其中关键得有:

  • go-openapi:OpenAPI 的 Golang 实现。
  • govalidator:可以对 Golang 的字符串、结构体以及集合进行校验和检查的工具包。

go-swagger 还内含了许多 Swagger 工具库,安装 swagger 指令:

go get -u github.com/go-swagger/go-swagger/cmd/swagger

swagger 指令支持:

  • Serve specification UI,为 OpenAPI Specification 提供一个具有 UI 界面的服务器。
  • Validate a specification,验证 OpenAPI Specification 文件进行检查和校验。
  • Generate an API server,通过 OpenAPI Specification 生成服务端。
  • Generate an API client,通过 OpenAPI Specification 生成客户端。
  • Generate a spec from source,通过源码生成 OpenAPI Specification 文档。
  • Generate a data model,生成数据结构。
  • Transform specs,转换规范。
  • Compare specs,比较规范。
Generate a spec from source

swagger generate 指令会找到 main.go 文件,然后遍历所有源码文件,解析源码中与 Swagger 相关的注释,然后自动生成 swagger.json 文件,例如:

// Package classification User API.
//
// The purpose of this service is to provide an application
// that is using plain go code to define an API
//
//      Host: localhost
//      Version: 0.0.1
//
// swagger:meta
package service

然后在命令行里执行:

swagger generate spec -o ./swagger.json

当 swagger.json 就绪后,可以直接运行 swagger serve 指令启动 UI 程序:

swagger serve -F=swagger swagger.json
Generate an API server

有了 swagger.json 或 swagger.yaml 之后就可以生成 API server 了。

mkdir myapi
cd myapi
swagger generate server -f ~/myapi.yaml -A myapi
CGO_ENABLED=1 go build -o dist/myapi -a -gcflags "-N -l" ./cmd/myapi-server;
./dist/myapi
参考文档

https://juejin.im/post/6844903609390333965
https://blog.csdn.net/benben_2015/article/details/100538074