Go 语言编程 — go-swagger OpenAPI 工具

目录

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

范桂飓

文章对您有帮助就请一键三连:)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值