go-swagger 是一个 Golang 的第三方库,是一个 Swagger 2.0(aka OpenAPI 2.0)的 Golang 实现。
go-swagger 内含了许多包,其中关键得有:
go-swagger 还内含了许多 Swagger 工具库,安装 swagger 指令:
go get -u github.com/go-swagger/go-swagger/cmd/swagger
swagger 指令支持:
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
有了 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