Go 语言编程 — go-swagger OpenAPI 工具
目录
文章目录
- 目录
- go-swagger
- Generate a spec from source
- Generate an API server
- 参考文档
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
Go 语言编程 — go-swagger OpenAPI 工具相关推荐
- Go 语言编程 — Cobra 指令行工具
目录 文章目录 目录 Cobra(眼镜蛇) Cobra 的核心概念 Cobra 的使用 初始化应用程序的项目框架 main.go 生成应用程序的子命令(SubCmd) 实现 Command 的功能 为 ...
- Go 语言编程 — validator 数据校验工具
目录 文章目录 目录 Validator Quick start 约束类型 特殊约束 格式约束 数据结构类型约束 范围约束 字符串约束 唯一性约束 跨字段约束 自定义约束 错误处理 中文错误信息 参考 ...
- MDSF:面向语言编程LOP(Language Oriented Programming)方法介绍
好几年前看了JetBrains的CEO Sergey Dmitive一篇文章Language Oriented Programming - The Next Programming Paradigm才 ...
- 面向语言编程LOP(Language Oriented Programming)方法介绍
好几年前看了JetBrains的CEO Sergey Dmitive一篇文章Language Oriented Programming - The Next Programming Paradigm才 ...
- linux c语言工具,Linux下C语言编程环境的工具.doc
Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 要想在Linux下进行C语言编程,首先得搭建好一个编程环境.这里分别说明一下几个非常有用的软件包. ...
- C 语言编程 — GCC 工具链
目录 文章目录 目录 文章目录 GCC 工具链 GCC 编译器 GCC 的常用指令选项 GCC 所遵循的部分约定规则 Binutils C 运行时库 Clang 和 LLVM 文章目录 <C 语 ...
- Perl/CGI脚本语言编程学习资料及开发工具下载大全
Practical Extraction and Report Language Perl 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表.Perl借取了C.sed. ...
- 易语言宝盒,易语言编程学习者必备工具
1.收集很多网上流行经典的易语言教程和一些常用的工具,易语言模块,易语言支持库.一键下载,双通道资源,保证资源不会失效. 2.支持在线观看,减少下载资源而浪费易友的时间! 3.支持一键下载宝盒上所有已 ...
- 好用的C语言编程软件!工具都没有,怎么用技术改变世界呢!
好用的C语言编程软件 1.VS(Visual Studio) VS是目前最流行的windows平台应用程序的集成开发环境,由于大部分同学使用的都是Windows操作系统,VS对于大家来说是极为合适的, ...
- C/C++语言编程的隐患!
C/C++语言编程的隐患! 本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内.内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决 ...
最新文章
- clojurescript_为什么ClojureScript在NPM上如此出色
- SharePoint的Reporting Service Viewer Web Part
- 精益 React 学习指南 (Lean React)- 3.4 掌控 redux 异步
- 安装python3.8.0步骤_python3.8.0安装教程_后端开发
- My MPC系列·暴风影音 V5.00 RC3
- JQuery中serialize()、serializeArray()和param()的使用方法
- java 将要死亡_人在即将死亡的时候,能意识到自己将要死亡了吗?科学家给出答案...
- mysql 扩展存储过程_MySQL4:存储过程和函数
- python科学计算库-数值计算库与科学计算库
- 如何在Eclipse 中查看(如Objects)的源代码
- 一个非常好用的代理服务器软件AllegroSurf
- 网络工程初学者的学习方法及成长之路(红茶三杯)
- 【搬运】 Cadence orcad常用库olb介绍
- H3CIE(WLAN)学习笔记(2)——通信原理基础
- 阿里云OSS使用详解(java版本)
- 使用RestTemplate 对接微信付款码支付接入问题记录
- 利用PS抠出水印字并添加到图片
- ArduPilot添加新的惯导方案
- 关于Android 4.4(华为)调用系统相机问题
- MAC通过ZOC远程访问Linux
热门文章
- 端口扫描器——ZenmapKail Linux渗透测
- OUYA游戏开发核心技术剖析大学霸内部资料
- electron 安装import_Electron: 从零开始写一个记事本app
- c语言的指针和java_C语言指针变量的定义和使用(精华)
- linux下搭建python 机器学习环境
- 瘫痪17年,利用双向脑机接口来诱发触觉,控制机械手
- 基于EEG/EMG/EOG的多模态人机接口,实时控制软机器人手
- Python-EEG工具库MNE中文教程(14)-Epoch对象中的元数据(metadata)
- VR不仅用于游戏!HTC Vive显示美国市长VR用于城市规划
- 她琴棋书画全能,还进入清华计算机系实验室,被赞智商太超群、能力过强悍...