iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang组件swagger生成接口文档的方法
  • 365
分享到

golang组件swagger生成接口文档的方法

2023-06-30 03:06:53 365人浏览 薄情痞子
摘要

这篇文章主要介绍“golang组件swagger生成接口文档的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang组件swagger生成接口文档的方法”文章能帮助大家解决问题。swagge

这篇文章主要介绍“golang组件swagger生成接口文档的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang组件swagger生成接口文档的方法”文章能帮助大家解决问题。

swagger介绍

Swagger本质上是一种用于描述使用JSON表示的RESTful api的接口描述语言。Swagger与一组开源软件工具一起使用,以设计、构建、记录和使用RESTful WEB服务。Swagger包括自动文档,代码生成和测试用例生成。

在前后端分离的项目开发过程中,如果后端同学能够提供一份清晰明了的接口文档,那么就能极大地提高大家的沟通效率和开发效率。可是编写接口文档历来都是令人头痛的,而且后续接口文档的维护也十分耗费精力。

最好是有一种方案能够既满足我们输出文档的需要又能随代码的变更自动更新,而Swagger正是那种能帮我们解决接口文档问题的工具。

这里以gin框架为例,使用gin-swagger库以使用Swagger 2.0自动生成RESTful API文档。

gin-swagger实战

想要使用gin-swagger为你的代码自动生成接口文档,一般需要下面三个步骤:

  • 按照swagger要求给接口代码添加声明式注释,具体参照声明式注释格式。

  • 使用swag工具扫描代码自动生成API接口文档数据

  • 使用gin-swagger渲染在线接口文档页面

第一步:添加注释

在程序入口main函数上以注释的方式写下项目相关介绍信息。

package main// @title 这里写标题// @version 1.0// @description 这里写描述信息// @termsOfService Http://swagger.io/terms/// @contact.name 这里写联系人信息// @contact.url http://www.swagger.io/support// @contact.email support@swagger.io// @license.name Apache 2.0// @license.url http://www.apache.org/licenses/LICENSE-2.0.html// @host 这里写接口服务的host// @BasePath 这里写base pathfunc main() {r := gin.New()// liwenzhou.com ...r.Run()}

在你代码中处理请求的接口函数(通常位于controller层)按如下方式写上注释:

// GetPostListHandler2 升级版帖子列表接口// @Summary 升级版帖子列表接口// @Description 可按社区按时间或分数排序查询帖子列表接口// @Tags 帖子相关接口// @Accept application/json// @Produce application/json// @Param Authorization header string false "Bearer 用户令牌"// @Param object query models.ParamPostList false "查询参数"// @Security ApiKeyAuth// @Success 200 {object} _ResponsePostList// @Router /posts2 [get]func GetPostListHandler2(c *gin.Context) {// GET请求参数(query string):/api/v1/posts2?page=1&size=10&order=time// 初始化结构体时指定初始参数p := &models.ParamPostList{Page:  1,Size:  10,Order: models.OrderTime,}if err := c.ShouldBindQuery(p); err != nil {zap.L().Error("GetPostListHandler2 with invalid params", zap.Error(err))ResponseError(c, CodeInvalidParam)return}data, err := logic.GetPostListNew(p)// 获取数据if err != nil {zap.L().Error("logic.GetPostList() failed", zap.Error(err))ResponseError(c, CodeServerBusy)return}ResponseSuccess(c, data)// 返回响应}

上面注释中参数类型使用了objectmodels.ParamPostList具体定义如下:

// bluebell/models/params.go// ParamPostList 获取帖子列表query string参数type ParamPostList struct {CommUnityID int64  `json:"community_id" fORM:"community_id"`   // 可以为空Page        int64  `json:"page" form:"page" example:"1"`       // 页码Size        int64  `json:"size" form:"size" example:"10"`      // 每页数据量Order       string `json:"order" form:"order" example:"score"` // 排序依据}

响应数据类型也使用的object,我个人习惯在controller层专门定义一个docs_models.go文件来存储文档中使用的响应数据model。

// bluebell/controller/docs_models.go// _ResponsePostList 帖子列表接口响应数据type _ResponsePostList struct {Code    ResCode                 `json:"code"`    // 业务响应状态码Message string                  `json:"message"` // 提示信息Data    []*models.ApiPostDetail `json:"data"`    // 数据}

第二步:生成接口文档数据

编写完注释后,使用以下命令安装swag工具:

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

在项目根目录执行以下命令,使用swag工具生成接口文档数据。

swag init

执行完上述命令后,如果你写的注释格式没问题,此时你的项目根目录下会多出一个docs文件夹。

./docs├── docs.go├── swagger.json└── swagger.yaml

第三步:引入gin-swagger渲染文档数据

然后在项目代码中注册路由的地方按如下方式引入gin-swagger相关内容:

import (// liwenzhou.com ..._ "bluebell/docs"  // 千万不要忘了导入把你上一步生成的docsgs "github.com/swaggo/gin-swagger""github.com/swaggo/gin-swagger/swaggerFiles""github.com/gin-gonic/gin")

注册swagger api相关路由

r.GET("/swagger/*any", gs.WrapHandler(swaggerFiles.Handler))

把你的项目程序运行起来,打开浏览器访问http://localhost:8080/swagger/index.html就能看到Swagger 2.0 Api文档了。

golang组件swagger生成接口文档的方法

gin-swagger同时还提供了DisablingWrapHandler函数,方便我们通过设置某些环境变量来禁用Swagger。例如:

r.GET("/swagger/*any", gs.DisablingWrapHandler(swaggerFiles.Handler, "NAME_OF_ENV_VARIABLE"))

此时如果将环境变量NAME_OF_ENV_VARIABLE设置为任意值,则/swagger/*any将返回404响应,就像未指定路由时一样。

关于“golang组件swagger生成接口文档的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网GO频道,小编每天都会为大家更新不同的知识点。

您可能感兴趣的文档:

--结束END--

本文标题: golang组件swagger生成接口文档的方法

本文链接: https://www.lsjlt.com/news/327324.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • golang组件swagger生成接口文档的方法
    这篇文章主要介绍“golang组件swagger生成接口文档的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“golang组件swagger生成接口文档的方法”文章能帮助大家解决问题。swagge...
    99+
    2023-06-30
  • golang组件swagger生成接口文档实践示例
    目录swagger介绍gin-swagger实战第一步:添加注释第二步:生成接口文档数据第三步:引入gin-swagger渲染文档数据swagger介绍 Swagger本质上是一种用...
    99+
    2024-04-02
  • SpringBoot使用swagger生成api接口文档的方法详解
    目录前言具体例子maven配置项目application.yml配置springApplication添加swagger注解在控制层添加swagger注解前言 在之前的文章中,使用m...
    99+
    2022-11-13
    SpringBoot swagger生成api接口文档 SpringBoot 生成api接口文档 SpringBoot swagger
  • Laravel swagger接口文档生成和管理
    接口开发随着时间推移接口会越来越多,随着多部门之间的协作越来越频繁, 维护成本越来越高, 文档的可维护性越来越差, 需要一个工具来管理这些接口的文档, 并能够充当mock server给调用方使用 这里推荐swagger生成和管理接口文档...
    99+
    2024-04-02
  • vue自动生成swagger接口请求文件的方法
    前端: vue-element-admin 后端: .net core (6.0) 找了很多自动生成的代码的,感觉不太行,可能是我不太懂。所以自己根据swagger.json去生成了...
    99+
    2023-01-31
    vue swagger接口 自动生成swagger接口请求文件
  • Java集成swagger文档组件
    一:简介   Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务...
    99+
    2024-04-02
  • 教你利用springboot集成swagger并生成接口文档
    效果图 实现步骤 1.maven中引入jar包,不同版本的swagger可能页面效果不一样。 <dependency> <groupI...
    99+
    2024-04-02
  • Java如何集成swagger文档组件
    这篇文章主要介绍了Java如何集成swagger文档组件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:简介  Swagger 是一个规范和完整的框架,用于生成、描述、调用...
    99+
    2023-06-20
  • Vue组件文档生成工具库的方法
    目录解析.vue 文件 提取文档信息 提取组件名称、描述、props、methods、model 提取描述 提取 methods 提取 props 提取 model 提取组件Even...
    99+
    2024-04-02
  • Golang生成Excel文档的方法步骤
    目录关于 Excelize 库 性能对比 安装 创建 Excel 文档 实际场景复现 创建工作表 删除默认创建的工作表 合并单元格 单元格样式 文字水平居中 给单元格设置纯色填充 S...
    99+
    2024-04-02
  • Golang生成Excel文档的方法是什么
    这篇文章主要介绍“Golang生成Excel文档的方法是什么”,在日常操作中,相信很多人在Golang生成Excel文档的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang生成Excel文档...
    99+
    2023-07-05
  • java集成开发SpringBoot生成接口文档的方法是什么
    这篇文章主要介绍“java集成开发SpringBoot生成接口文档的方法是什么”,在日常操作中,相信很多人在java集成开发SpringBoot生成接口文档的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-25
  • thinkphp6使用Apidoc生成接口文档
    下载-配置-使用 下载Apidoc配置apidoc.php文件在控制器里添加注解打开文档 下载Apidoc 进入项目根目录,执行如下命令: composer require hg/ap...
    99+
    2023-10-03
    php 开发语言
  • PHP使用Swagger生成好看的API文档
    目录一、安装swagger-php二、设置一个输出api文档数据的接口三、使用四、显示swagger uiPHP使用Swagger生成好看的API文档不是不可能,而是非常简单。 首先...
    99+
    2023-02-15
    PHP Swagger生成API文档 PHP Swagger
  • django怎么自动生成接口文档
    Django没有内置的功能来自动生成接口文档,但是可以使用第三方工具来实现自动生成接口文档。 以下是一些常用的自动生成接口文档的工具...
    99+
    2023-10-23
    django
  • goswagger生成接口文档使用教程
    目录前言Swagger介绍1、安装2、检测是否安装成功3、安装gin-swagger扩展使用1、添加注释2、生成接口文档数据3、引入gin-swagger渲染文档数据总结前言 这篇文...
    99+
    2024-04-02
  • java快速生成接口文档的三种解决方案
    目录前言方案一,使用japidocs基本用法方案2,swagger + knife4j生成步骤方案3,开源的接口文档生成工具总结前言 常常在项目收尾阶段,客户需要项目的接口文档,或者...
    99+
    2024-04-02
  • PHP如何使用Swagger生成好看的API文档
    本文小编为大家详细介绍“PHP如何使用Swagger生成好看的API文档”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP如何使用Swagger生成好看的API文档”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-05
  • 怎么用java快速生成接口文档
    本篇内容主要讲解“怎么用java快速生成接口文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用java快速生成接口文档”吧!目录前言方案一,使用japidocs基本用法方案2,swagge...
    99+
    2023-06-20
  • vue组件文档生成备注详解
    目录vue组件文档生成备注内容实现Vuese自动生成vue组件文档安装Vuese在根目录下新增配置文件 .vueserc在package.json新增脚本,并启动vue组件文档生成备...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作