目录

文章目录

  • 目录
  • 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 工具相关推荐

  1. Go 语言编程 — Cobra 指令行工具

    目录 文章目录 目录 Cobra(眼镜蛇) Cobra 的核心概念 Cobra 的使用 初始化应用程序的项目框架 main.go 生成应用程序的子命令(SubCmd) 实现 Command 的功能 为 ...

  2. Go 语言编程 — validator 数据校验工具

    目录 文章目录 目录 Validator Quick start 约束类型 特殊约束 格式约束 数据结构类型约束 范围约束 字符串约束 唯一性约束 跨字段约束 自定义约束 错误处理 中文错误信息 参考 ...

  3. MDSF:面向语言编程LOP(Language Oriented Programming)方法介绍

    好几年前看了JetBrains的CEO Sergey Dmitive一篇文章Language Oriented Programming - The Next Programming Paradigm才 ...

  4. 面向语言编程LOP(Language Oriented Programming)方法介绍

    好几年前看了JetBrains的CEO Sergey Dmitive一篇文章Language Oriented Programming - The Next Programming Paradigm才 ...

  5. linux c语言工具,Linux下C语言编程环境的工具.doc

    Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 要想在Linux下进行C语言编程,首先得搭建好一个编程环境.这里分别说明一下几个非常有用的软件包. ...

  6. C 语言编程 — GCC 工具链

    目录 文章目录 目录 文章目录 GCC 工具链 GCC 编译器 GCC 的常用指令选项 GCC 所遵循的部分约定规则 Binutils C 运行时库 Clang 和 LLVM 文章目录 <C 语 ...

  7. Perl/CGI脚本语言编程学习资料及开发工具下载大全

    Practical Extraction and Report Language Perl 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表.Perl借取了C.sed. ...

  8. 易语言宝盒,易语言编程学习者必备工具

    1.收集很多网上流行经典的易语言教程和一些常用的工具,易语言模块,易语言支持库.一键下载,双通道资源,保证资源不会失效. 2.支持在线观看,减少下载资源而浪费易友的时间! 3.支持一键下载宝盒上所有已 ...

  9. 好用的C语言编程软件!工具都没有,怎么用技术改变世界呢!

    好用的C语言编程软件 1.VS(Visual Studio) VS是目前最流行的windows平台应用程序的集成开发环境,由于大部分同学使用的都是Windows操作系统,VS对于大家来说是极为合适的, ...

  10. C/C++语言编程的隐患!

    C/C++语言编程的隐患! 本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内.内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决 ...

最新文章

  1. clojurescript_为什么ClojureScript在NPM上如此出色
  2. SharePoint的Reporting Service Viewer Web Part
  3. 精益 React 学习指南 (Lean React)- 3.4 掌控 redux 异步
  4. 安装python3.8.0步骤_python3.8.0安装教程_后端开发
  5. My MPC系列·暴风影音 V5.00 RC3
  6. JQuery中serialize()、serializeArray()和param()的使用方法
  7. java 将要死亡_人在即将死亡的时候,能意识到自己将要死亡了吗?科学家给出答案...
  8. mysql 扩展存储过程_MySQL4:存储过程和函数
  9. python科学计算库-数值计算库与科学计算库
  10. 如何在Eclipse 中查看(如Objects)的源代码
  11. 一个非常好用的代理服务器软件AllegroSurf
  12. 网络工程初学者的学习方法及成长之路(红茶三杯)
  13. 【搬运】 Cadence orcad常用库olb介绍
  14. H3CIE(WLAN)学习笔记(2)——通信原理基础
  15. 阿里云OSS使用详解(java版本)
  16. 使用RestTemplate  对接微信付款码支付接入问题记录
  17. 利用PS抠出水印字并添加到图片
  18. ArduPilot添加新的惯导方案
  19. 关于Android 4.4(华为)调用系统相机问题
  20. MAC通过ZOC远程访问Linux

热门文章

  1. 端口扫描器——ZenmapKail Linux渗透测
  2. OUYA游戏开发核心技术剖析大学霸内部资料
  3. electron 安装import_Electron: 从零开始写一个记事本app
  4. c语言的指针和java_C语言指针变量的定义和使用(精华)
  5. linux下搭建python 机器学习环境
  6. 瘫痪17年,利用双向脑机接口来诱发触觉,控制机械手
  7. 基于EEG/EMG/EOG的多模态人机接口,实时控制软机器人手
  8. Python-EEG工具库MNE中文教程(14)-Epoch对象中的元数据(metadata)
  9. VR不仅用于游戏!HTC Vive显示美国市长VR用于城市规划
  10. 她琴棋书画全能,还进入清华计算机系实验室,被赞智商太超群、能力过强悍...