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

Gin框架整合Swagger生成接口文档完整指南 摘要:本文介绍了在Gin框架中集成Swagger自动生成API文档的方法。Swagger通过代码注解实现"代码即文档",解决了传统手写文档更新不同步、调试不便等问题。内容包括:1) Swagger安装配置;2) 项目结构与基础注解配置;3) 数据模型和API接口的详细注解编写规范,涵盖GET、POST、PUT、DELETE等多种请求类型,提供参数校验、响应格式等标准定义。通过集成Swagger,开发者可以自动生成实时准确的API文档,提升开发效率和协作质量。 阅读详情

640

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

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

接下来介绍一款神器 --- swagger

640

?什么是swagger

640


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

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

?安装 swagger

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

首先要安装 swagger 。


 

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

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


 

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

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


 

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

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

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

等待包下载完成。

640

?集成 swagger

640

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

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


 

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

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

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


 

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

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

在我们的 handler 中添加注释

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


 
  • @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 的方法上添加如上注释。


 

我们对形如 /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 就可以查看我们的文档,效果如下

640?wx_fmt=jpeg

640

✍总结

640


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

640

?‍?本章节代码

640


Github 请点击 阅读原文

往期推荐

Gin(一):Hello Gin

Gin(二):路由Router

Gin(三):配合模板 Tmpl

Gin(四):表单数据提交和模型绑定

Gin(五):连接MySQL

Gin(六):文件的上传

Gin(七):中间件的使用和定义

Gin(八): Cookie 的使用

Gin(九):生成 restful 接口

640?wx_fmt=jpeg

好看的人才能点

640

【FOC无刷电机控制】六步换向、FOC,STM32cubemx从零开始搭建BLDC六步换相代码、FOC代码(基于霍尔传感器) FOC、六步换相,无刷电机控制 阅读详情

相关推荐

ADS入门学习笔记——低噪声放大器(2)

1、输入匹配网络; 2、输出匹配网络;

weixin_42126696的博客 4990

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

保姆级教程:用YOLOv5s搞定钢材表面缺陷检测,从数据集NEU-DET到模型部署全流程

本文提供了一份详细的YOLOv5s钢材表面缺陷检测教程,涵盖从NEU-DET数据集处理到模型部署的全流程。针对工业环境中的实际限制,如计算资源有限和标注样本少等问题,提供了优化方案和实用技巧,帮助开发者快速实现高效的钢材缺陷检测系统。

weixin_30568591的博客 465

gin集成swagger

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

pin621的博客 764

陀螺仪及四元数解算

陀螺仪 四元数

zb313982521的博客 2006

【课程设计】TCP/IP 应用环境中服务器的部署与实现

本项目旨在通过搭建一个虚拟网络环境,实现软路由系统的配置和服务器的搭建与测试。具体包括安装虚拟机 VMWare Workstation,安装 Windows Server 2003 操作系统,配置软路由系统(包括双网卡安装、协议配置和测试),以及搭建并测试 DHCP 服务、DNS 服务、WWW 服务、FTP 服务和 SMTP/POP3 服务。

weixin_74907236的博客 1524

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

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

m0_53328239的博客 902

Windows 11 安装 MySQL 8.4:安装包方式、下载、安装、使用

本文详细介绍了在 Windows 11 系统下通过 MSI 安装包方式安装 MySQL 8.4 LTS 社区版的完整流程,包括版本选择、下载、自定义安装路径、服务配置、日志设置、示例数据库创建及后续使用方法。同时提供了命令行客户端与图形化工具 DBeaver 的连接与操作演示,适合初学者和开发者快速搭建本地 MySQL 开发环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2265

Gin 生成 Swagger 接口文档

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

Doublelv 的博客专栏。 2348

DLMS/COSEM协议的理解体会

DLMS是通信协议,COSEM是电表建模规范。HDLC帧基本格式为0x7e......

一个bug是bug,多个bug能work 8315

YOLOv8改进 | Conv篇 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块,主要针对的是小目标检测,主要创新点可以总结如下:多尺度特征提取机制的深入研究和创新的DWR模块和SIR模块的提出这种方法使得网络能够更灵活地适应不同尺度的特征,从而更准确地识别和分割图像中的物体。通过本文你能够了解到DWRSeg的基本原理和框架,并且能够在你自己的网络结构中进行添加(DWRSeg需要增加一定的计算量一个DWR模块大概增加0.4GFLOPs)。

Snu77的博客 9572

gin集成Swagger

【代码】gin集成Swagger。

weixin_42587620的博客 655

零基础实战:用 Docker 和 vLLM 本地部署 bge-reranker-v2-m3 重排序模型

本文介绍了如何利用Docker容器和vLLM推理框架在本地部署BAAI开发的bge-reranker-v2-m3文本排序模型。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 5972

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

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

neweastsun的专栏 1962

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Go gin框架 使用swagger生成API文档

swaggos 是一个golang版本的swagger文档生成器,提供了native code包装器,并且支持主流的web框架包裹器 github 地址:https://github.com/swaggo/gin-swagger 下载安装 swag $ go get -u github.com/swaggo/swag/cmd/swag 在Go项目根文件夹中运行Swag 在main.go所在目录执行 swag init, -g 参数是输出详细信息 执行后,会生成docs/doc.go以及docs/sw.

梦逸灵箭——的博客 4299

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

gin-swagger api生成项目实践

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

xuanyu.li的博客 1366

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

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

兔哥的技术 1337

gin集成swagger构建api文档

官方文档 gin-swagger swagger-doc 具体步骤如下: 安装 swag go get github.com/swaggo/swag/cmd/swag 一般安装比较慢,这里我先安装了go mod 借助https://goproxy.cn 代理,安装很快。当然,你会科学上网也可以。 安装gin-swagger go get -u github.com/swaggo/gin-sw...

无风的雨 2225

简述 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

Swagger 生成 API 文档

关于 Swagger 的生成接口文档的使用!

qq_46457076的博客 5532

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

Swagger UI与Go集成:Gin框架API文档自动生成

在现代API开发中,文档的重要性不言而喻。Swagger UI作为一款强大的API文档工具,能够帮助开发者自动生成交互式API文档,极大地提高了API开发和测试的效率。本文将详细介绍如何将Swagger UI与Go语言的Gin框架集成,实现API文档的自动生成。 ## Swagger UI简介 Swagger UI是一个开源项目,它允许开发者将OpenAPI规范(OpenAPI Specifi...

gitblog_00054的博客 1095

深入浅出:使用 Gin 框架生成 API 文档

Gin高性能:Gin 使用标准库net/http,并通过优化路由匹配和中间件机制,实现了极高的性能。简洁易用:Gin 的 API 设计非常简洁,代码量少,易于上手。丰富的功能:Gin 提供了路由分组、中间件、JSON 序列化等常用功能,满足大多数 Web 开发需求。社区活跃:Gin 拥有一个庞大的开发者社区,提供了丰富的插件和工具,方便扩展和定制。通过本文的学习,你应该已经掌握了如何使用 Gin 框架生成 API 文档,并了解了如何通过注释让 API 文档自动生成并保持最新。

软件架构师笔记 1618

Gin Web接口文档自动生成:Swagger配置与使用教程

### 文档的展开方式 在注册Swagger路由时,可以通过`ginSwagger.DocExpansion("none")`设置文档的展开方式,"none"表示默认不展开接口详情,"list"表示展开接口列表,"full"表示完全展开。 ### 接口测试 在Swagger文档页面中,每个接口都提供了"Try it out"按钮,点击后可以填写请求参数,然后发送请求进行测试,方便开发者在开发

gitblog_00854的博客 1050

Golang gin框架使用swagger生成接囗文档

0、开发环境 操作系统:Win10 Golang版本:1.15 1、安装swag go get github.com/swaggo/swag/cmd/swag 此时会在环境变量 GOBIN目录中生成swag.exe,如下图所示 验证是否安装成功 F:\Golang\TalentChain\talentchain>swag -v swag version v1.8.1 2、安装依赖包 go get -u github.com/swaggo/gin-swagger go ge.

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值