组件分享之后端组件——一个Go 的 Swagger 2.0 实现组件go-swagger
背景
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
组件基本信息
- 组件:go-swagger
- 开源协议:Apache-2.0 License
内容
本节我们分享一个Go 的 Swagger 2.0 实现组件go-swagger
特征
go-swagger为 Go 社区带来了一整套功能齐全、高性能的 API 组件,可与 Swagger API 一起使用:服务器、客户端和数据模型。
- 从 swagger 规范生成服务器
- 从 swagger 规范生成客户端
- 从 swagger 规范(alpha 阶段)生成 CLI(命令行工具)
- 支持 jsonschema 和 swagger 提供的大部分功能,包括多态性
- 从带注释的 go 代码生成一个 swagger 规范
- 使用 swagger 规范的其他工具
- 强大的自定义功能,带有供应商扩展和可自定义的模板
我们的代码生成重点是生成惯用的、快速的代码,它与 golint、go vet 等配合得很好。
功能描述
- 序列化兼容 swagger 的 yaml 或 json 的对象模型
- 使用 swagger 的工具
- 为任何 swagger 规范文件提供 swagger UI
- 灵活的代码生成,带有可定制的模板
- 基于 swagger 规范生成 go API server
- 从 swagger 规范生成 go API 客户端
- 验证一个招摇的规范文档,这里列出了额外的规则
- 根据带注释的代码生成规范文档
- 使用 Rest API 和中间件的运行时
- 服务规格
- 路由
- 验证
- 授权
- Swagger 文档用户界面
- 如果规范中的更改破坏了向后兼容性,则会导致构建失败的 Diff 工具
还有更多...
- 一个类型化的 JSON Schema 实现,支持 Draft 4 的大部分特性
- 扩展字符串和数字格式:strfmt
- 使用 JSON、转换数据类型和指针的实用程序:swag
- 一个 jsonschema (Draft 4) 验证器,具有完整的 $ref 支持:validate
- 自定义验证界面
本文声明:
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。