Gin(十):集成 Swagger

gin集成Swagger-UI gin 中间件使用 Swagger 2.0 自动生成 RESTFUL API 文档。 1. 安装Swagger 使用以下命令下载Swag for Go: go get -u github.com/swaggo/swag/cmd/swag 在 Go 项目根路径运行Swag , Swag将解析注释并生成所需的文件和文件夹。 swag init 生成目录如下: . ├── docs │ ├── docs.go │ ├── swagger.json │ └── swagger.yaml ├── g 阅读详情

你喜欢写文档吗? 我喜欢。

所以说文档成了开发心中的一个痛。尤其是使用 restful 接口,成了必须要写文档,否者前端同学根本不知道你写了什么。那么让我写文档,还不如杀了我呢!!!

接下来介绍一款神器 — swagger

?什么是swagger

Swagger 是一个 API 生成工具,可以生成文档。 Swagger 是通过编写 yaml 和 json 来实现文档化。并且可以进行测试等工作。

通过 swagger 可以方便的生成接口文档,方便前端进行查看和测试。

?安装 swagger

上面说了一堆 swagger 怎么样,说到头还是要自己编写?其实并不是的,让我们的项目中集成 swagger,以后项目的接口文档便可以自动生成。

首先要安装 swagger 。

go get -u github.com/swaggo/swag/cmd/swag

等待安装完成,在我们的终端中执行 swag init,目录为根目录,于 main.go 同目录。

执行完成后,会在根目录下新建一个 docs 文件夹。

docs
|
|-docs.go
|-swagger.json
|-swagger.yaml

接下来就可以完善项目了。

将下面两行放入 initRouter 中的 import 中。

swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"

选择 Sync packages of GinHello,此时 IDE 就会自动帮我下载,并添加到 go.mod 中。

如果这里提示下载失败,请对 go mod 添加代理。

添加代理 File-Setting-Go-Go Modules(vgo)-Proxy
代理添加 https://mirrors.aliyun.com/goproxy/ 这是最近阿里建立的 go mod 镜像。当然你也可以选择其他镜像代理。
Go Mod 代理设置

等待包下载完成。

?集成 swagger

对 swagger 安装完成后,我们就可以对项目进行集成了。

在 initRouter 中添加路由,这个路由是对 swagger 的访问地址来进行添加的

url := ginSwagger.URL("http://localhost:8080/swagger/doc.json")
router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, url))

其中 url 定义了 swagger 的 doc.json 路径,我们可以直接访问该 json 来进行查看。

接下来就是完善文档的时间。

在 main.go 中 main 方法上添加注释。同时引入我们生成 docs.go

package main

import (
	_ "GinHello/docs"
	"GinHello/initRouter"
)

// @title Gin swagger
// @version 1.0
// @description Gin swagger 示例项目

// @contact.name youngxhu
// @contact.url https://youngxhui.top
// @contact.email youngxhui@g mail.com

// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html

// @host localhost:8080
func main() {
    // 省略其他代码
}

上述的注释基本都是很好理解的,不做过多解释。

主要的项目介绍注释就是这些,接下来进行我们的接口方法注释。

在我们的 handler 中添加注释

打开 articleHandler.go ,在 Insert 方法上添加。

// @Summary 提交新的文章内容
// @Id 1
// @Tags 文章
// @version 1.0
// @Accept application/x-json-stream
// @Param article body model.Article true "文章"
// @Success 200 object model.Result 成功后返回值
// @Failure 409 object model.Result 添加失败
// @Router /article [post]
  • @Summary 是对该接口的一个描述
  • @Id 是一个全局标识符,所有的接口文档中 Id 不能标注
  • @Tags 是对接口的标注,同一个 tag 为一组,这样方便我们整理接口
  • @Version 表明该接口的版本
  • @Accept 表示该该请求的请求类型
  • @Param 表示参数 分别有以下参数 参数名词 参数类型 数据类型 是否必须 注释 属性(可选参数),参数之间用空格隔开。
  • @Success 表示请求成功后返回,它有以下参数 请求返回状态码,参数类型,数据类型,注释
  • @Failure 请求失败后返回,参数同上
  • @Router 该函数定义了请求路由并且包含路由的请求方式。

具体参数类型,数据类型等可以查看官方文档

其中文档中没有说明的地方这里说明一下,关于 Param 的参数类型有以下几种

  • query 形如 \user?username=Jack&age=18
  • body 需要将数据放到 body 中进行请求
  • path 形如 \user\1

不同的参数类型对应的不同请求,请对应使用。

这样我们就完成了添加接口的文档注释。

我们用通用的方法来完善一下根据 id 查询数据的接口文档。

在 GetOne 的方法上添加如上注释。

// @Summary 通过文章 id 获取单个文章内容
// @version 1.0
// @Accept application/x-json-stream
// @Param id path int true "id"
// @Success 200 object model.Result 成功后返回值
// @Router /article/{id} [get]

我们对形如 /article/:id 的接口,最后的 id 通过 {} 包裹。

细心的小伙伴可能会发现我们最后的返回结果为 model.Result ,这是为了我们统一返回结果而新建的一个结构体,方便前端进行解析。具体函数如下

package model

type Result struct {
	Code    int         `json:"code" example:"000"`
	Message string      `json:"message" example:"请求信息"`
	Data    interface{} `json:"data" `
}

我们在对 Result 中的 tag 会有 example ,这个仍旧是 swagger 的标签,用来给该结构体一个示例。

同理,我们可以对之前的 article 进行注释。

当我们完成了所有的代码注释时,在控制台中重新执行 swag init,它会根据我们的注释生成 docs.go 及其对应的 json 和 yaml 文件。

启动我们的项目,访问 hppt://localhost:8080/swagger/index.html 就可以查看我们的文档,效果如下

✍总结

通过本章节的学习,将我们的项目和文档相结合起来,反正要写注释,现在是一举两得,即完成了代码注释,也完成了项目文档。

?‍?本章节代码

Github

个人公众微信号

文章与个人公众号同步更新,欢迎各位扫码关注。

在这里插入图片描述

ComfyUI安装包运行前准备:增加虚拟内存 在Windows系统中,虚拟内存是一种重要的系统资源管理机制,它主要通过将硬盘空间用作内存来扩展系统的可用内存容量。以下是虚拟内存的主要作用: 1. 扩展物理内存容量 当物理内存(RAM)不足时,系统会将一部分数据从内存转移到硬盘上的虚拟内存区域(也称为“分页文件”或“交换文件”)。这样可以为正在运行的程序提供额外的“内存空间”,确保系统能够继续运行,而不会因为内存不足而崩溃。 2. 提高系统稳定性 虚拟内存为系统提供了一个缓冲区。如果没有虚拟内存... 阅读详情

相关推荐

SAP成本计划BAPI接口BAPI_COSTACTPLN_POSTPRIMCOST深度解析与实战指南

在SAP ERP系统中,成本计划是财务与控制模块的核心功能,它涉及对企业未来成本支出的预测与规划。其原理是通过结构化数据模型,将成本要素分配到具体的成本对象上,以实现预算编制和成本控制。这一技术的核心价值在于实现成本数据的标准化、自动化处理,从而提升财务流程效率与数据准确性。在应用场景上,成本计划广泛应用于年度预算编制、项目成本预测、系统间数据集成以及历史数据迁移等关键业务环节。本文聚焦于实现上述流程自动化的关键技术——SAP标准接口BAPI_COSTACTPLN_POSTPRIMCOST,并深入探讨其在高

weixin_29657209的博客 350

Gin(十):集成 Swagger 生成 API 文档

你喜欢写文档吗?我喜欢。所以说文档成了开发心中的一个痛。尤其是使用 restful 接口,成了必须要写文档,否者前端同学根本不知道你写了什么。那么让我写文档,还不如杀了我...

代码猎奇站 1809

Windows 2008 R2虚拟机跑金蝶K3 WISE 12.1的5个关键配置细节(附避坑清单)

本文详细介绍了在Windows Server 2008 R2虚拟机中部署金蝶K3 WISE 12.1的5个关键配置细节,包括服务器角色与账户权限、组件服务调优、数据库与中间层协同部署、补丁管理策略及性能优化工具。这些实战经验可帮助企业IT团队避免常见陷阱,确保ERP系统稳定运行。

weixin_30847939的博客 319

gin 集成swagger

安装 swag $ go get -u github.com/swaggo/swag/cmd/swag 验证是否安装成功 $ swag -v swag version v1.1.1 安装 gin-swagger $ go get -u github.com/swaggo/gin-swagger $ go get -u github.com/swaggo/gin-swagger/swaggerFiles 编写API注释 以官网文档为范例 // @Summary Add a new p

gxzhaha的博客 406

RV1126 MIPI CSI-2驱动RGB888图像采集的V4L2实战解析

本文详细解析了在RV1126平台上通过MIPI CSI-2接口采集RGB888格式图像的完整V4L2实战流程。核心内容包括设备树(DTS)配置、内核驱动适配、Media Controller链路调试,以及使用v4l2-ctl工具进行图像抓取与验证的方法,旨在帮助开发者打通从硬件连接到稳定采集RGB888图像数据的关键环节。

weixin_29161719的博客 166

线上专利申请(超详细)| 签名确认

在【法人登录】页面点击【证书登录】按钮,弹出证书登录提示框,点击【确 认】按钮,进入到输入证书密码页面,点击【取消】按钮,取消本次操作。企业在提交申请时,需要增加签名,如使用企业账户点击提交,会弹出“法人、代理机构不能签名,请使用经办人签名”,这个时候就需要换个账号了。在需要签名时,将专利官网的登录方式点击法人登录,选择扫码登录,使用移动端经办人账户的扫一扫功能扫描登录。登录完成后,再点击签名,使用移动端扫一扫功能,扫描签名,输入证书号,确认签名,并提交。最后,祝大家的申请都成功!

weixin_62112323的博客 9112

gin集成swagger

gin集成swagger本文主要讲述的是如何一步步实现gin集成swagger 本文主要讲述的是如何一步步实现gin集成swagger 如果你有gin的使用经验者,可以轻松看懂本文中涉及的gin代码,但本文的重点是讲集成swagger。 ...

pin621的博客 764

开源libmodbus编译为32位和64位动态库

libmodbus 是支持Linux,Mac OS X,window 的一个开源库,支持modbus TCP和RTU 两种模式。

lemontree1945的博客 1923

gin项目中集成swagger生成接口文档

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。需要注意的是,在Go 1.17以后版本开始,go get不推荐使用安装可执行文件。简单的来说,swagger是一款可以根据resutful风格生成的接口开发文档,并且支持做测试的一款中间软件。3、然后在main函数中导入刚刚生成的docs包,swag init生成后的路径。然后就可以在我们编写的api接口上配置参数生成我们的swagger文档了。,接下来就可以看到有api测试的swagger文档了。

m0_53328239的博客 902

模电(十四)差分放大电路

目录 差分放大电路 双端输入双端输出 Q点分析 抑制共模信号 放大差模信号 双端输入单端输出 Q点分析 差模信号分析 共模信号分析 单端输入双端输出 单端输入单端输出 四种接法比较 具有恒流源的差分放大电路 差分放大电路的改进 差分放大电路 采用引入支流负反馈,温度补偿来克服零点漂移(温度变化,直流电源波动,元器件老化产生的输入电压为零,输出电压不为零的...

weixin_43674847的博客 2万+

Linux | Ubuntu18.04安装WIFI6 AX201驱动完整教程

本节介绍了如何在Ubuntu18下安装AX201驱动的教程。

九七的博客 8883

Gin 生成 Swagger 接口文档

采用工具生成,不同的工具生成的接口文档风格不一,增加阅读者的理解成本。使用 Swagger 就是把接口相关信息存储在它定义的描述文件里面(yaml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码。生成 API 描述文件后,便可通过 Swagger 为我们提供的库,将 API 描述文件集成到服务中,通过接口的形式提供在线文档。可以在请求 Body 对应的 struct 中添加注释,在接口的请求参数中添加说明,引用自具体的 struct。

Doublelv 的博客专栏。 2348

MacBook 长期挂机 OpenClaw:电池保护 + 防休眠设置

本文介绍了MacBook长期挂机运行OpenClaw时的电池保护和防休眠设置方案。主要内容包括:1)电池保护策略,通过电源连接、充电限制和定期充放电维护电池健康;2)防休眠设置,禁用系统休眠、自动休眠和屏幕休眠;3)OpenClaw的Docker部署方法。文章提供了详细的命令行脚本和配置说明,帮助用户实现MacBook的长期稳定运行,同时保护电池寿命。

一键难忘的博客 1695

gin 怎么接收json_Gin(十): 集成 Swagger,Gin配置这个神器,再也不用写接口文档了

你喜欢写文档吗? 所以说文档成了开发心中的一个痛。尤其是使用 restful 接口,成了必须要写文档,否者前端同学根本不知道你写了什么。那么让我写文档,还不如杀了我呢!!!接下来介绍一款神器 --- swagger什么是swaggerSwagger 是一个 API 生成工具,可以生成文档。 Swagger 是通过编写 yaml 和 json 来实现文档化。并且可以进行测试等工作。通过 swagge...

weixin_33503373的博客 794

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

xshell 建立空文档失败_Gin(十): 集成 Swagger,Gin配置这个神器,再也不用写接口文档了...

你喜欢写文档吗? 所以说文档成了开发心中的一个痛。尤其是使用 restful 接口,成了必须要写文档,否者前端同学根本不知道你写了什么。那么让我写文档,还不如杀了我呢!!!接下来介绍一款神器 --- swagger什么是swaggerSwagger 是一个 API 生成工具,可以生成文档。 Swagger 是通过编写 yaml 和 json 来实现文档化。并且可以进行测试等工作。通过 swagge...

weixin_39603117的博客 303

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

简述 Gin 框架如何集成swagger

简述Gin框架集成swagger过程 1、安装 swag swag 用于生成 docs 文件夹(swagger文档程序使用) 安装完成后会在 ${GOPATH}/bin生成一个执行文件 2、安装依赖包 github.com/gin-gonic/gin github.com/swaggo/gin-swagger 3、示例程序 /** * Created by martin on 01/02/2...

jinjiangcc 8168

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

19、Go Gin框架集成Swagger

浏览器直接访问项目+swagger路由:http://localhost:8080/swagger/index.html。需要导入,否则访问时会出错,因为有些静态资源都在该包目录下面。需要把swagger相关通过路由暴露出去,这样可以直接访问。main包中添加通用的API注释信息。::: deatils 完整示例。每次修改都需要执行改操作才能生效。15.5 项目启动访问。

qq_39335595的博客 1989

Golang Gin系列-9:Gin 集成Swagger生成文档

本文介绍了Gin如何集成Swagger,包括安装依赖,增加API接口注释文档,以及如何配置表单数据参数和JWT认证等。Gin,愈学习愈快乐, Go!

neweastsun的专栏 1962

Swagger自动文档工具以及gin-swagger的使用

Gin-Swagger 是一个基于 Go 语言的 Gin 框架的中间件,用于自动生成 RESTful API 的文档。它依赖于 Swagger 规范(目前支持 Swagger 2.0),通过解析代码中的注释生成 API 文档,并通过 Swagger UI 提供交互式的文档页面,方便开发者查看和测试 API 接口。它基于 OpenAPI 规范(前身为 Swagger 规范),通过自动化的方式生成交互式 API 文档、客户端 SDK 和服务端代码,从而简化了 API 的开发和维护工作。

qq_46063517的博客 5644

Go的Gin框架整合Swagger

最近在研究Go的Gin框架,本文简单记录怎么整合Swagger。 版本信息: gin v1.6.3 swag v1.6.7 首先下载安装Gin以及Swagger依赖包: go get -u github.com/gin-gonic/gin go get -u github.com/swaggo/swag/cmd/swag 若报以下错: go get github.com/gin-gonic/gin: module github.com/gin-gonic/gin: Get "https://proxy.

u013068184的博客 8455

第11篇:Gin集成Swagger——自动生成接口文档

Gin集成Swagger自动生成接口文档

兔哥的技术 1337

Gin-Swagger:一个用于Gin框架的Swagger集成工具

Gin-Swagger:一个用于Gin框架的Swagger集成工具 gin-swaggergin middleware to automatically generate RESTful API documentation with Swagger 2.0.项目地址:https://gitcode.com/gh_mirrors/gi/gin-swagger 本文将指导您了解如何使用gin-swa...

gitblog_00187的博客 533

Gin 入门指南 Swagger aipfox集成

Gin框架集成Swagger指南 本文详细介绍了如何在Gin框架中集成Swagger文档工具,包括环境准备、代码实现和文档生成三个主要部分。首先通过安装swag命令行工具和相关依赖完成环境配置,然后展示了标准项目结构和数据模型定义。在代码实现部分,重点说明了如何添加Swagger注释、配置主程序路由以及生成API文档。文章还提供了Mock数据配置方法和最佳实践建议,如统一错误处理和跨域配置。通过访问/swagger/index.html即可查看自动生成的交互式API文档,大大提升了API开发效率和使用体验。

优快云 人工智能领域创作者,专注大模型部署、AI Agent、AI Infra、推理框架与工程实践,持续分享企业级 AI 应用落地经验与技术探索。 1019

golang gin框架 集成swagger 自动生成文档

goswagger github仓库 https://github.com/swaggo/swag 安装 swag cli 1.因为网络原因,先安装gopm 管理工具 go get -v -u github.com/gpmgo/gopm 安装到了 $GOPTH/bin里 找不到的话,用 sudo find / -name gopm 找一下 2.安装...

tsxylhs的博客 2892

gin-swagger api生成项目实践

基于gin-swagger的api文档项目实践,gin-swagger使用入门简介

xuanyu.li的博客 1366

简述Gin框架集成swagger过程

简述Gin框架集成swagger过程 1、安装 swag go get github.com/swaggo/swag/cmd/swag swag 用于生成 docs 文件夹(swagger文档程序使用) 安装完成后会在 ${GOPATH}/bin生成一个执行文件 2、安装依赖包 github.com/gin-gonic/gin github.com/swaggo/gin-swagger 3...

qq_30505673的博客 1146
上一篇: Gin(九):生成restful接口
下一篇: Gin(十一):配合orm框架-gorm
代码猎奇站
博客等级 码龄7年 39粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值