Gin-swaggo为gin框架提供Swagger 文档

这篇具有很好参考价值的文章主要介绍了Gin-swaggo为gin框架提供Swagger 文档。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官方:

https://github.com/swaggo/gin-swagger

开始使用

  1. 为API方法增加注释,加在controller(api)层, See Declarative Comments Format.
  2. 运行下面命令下载swgo:
go get -u github.com/swaggo/swag/cmd/swag

Go 1.17后的版本, 使用 go get 安装可执行文件已被废弃. 用go install代替:

go install github.com/swaggo/swag/cmd/swag@latest
  1. 在你的go项目根目录运行swga(上文下载的exe)(比方说 ~/root/go-project-name), Swag 会分析注释生成必要的文件(docs folder and docs/doc.go) at ~/root/go-project-name/docs.
swag init
  1. 下载gin-swagger by using:
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files

Import following in your code:

import "github.com/swaggo/gin-swagger" // gin-swagger middleware
import "github.com/swaggo/files" // swagger embed files

规范示例: 现在假设您已经实现了一个简单的 api,如下所示:

// get 函数,通过 json 返回 hello world 字符串
func Helloworld(g *gin.Context) {
g.JSON(http.StatusOK,"helloworld")
}
那么如何在上面的api上使用gin-swagger呢?只需遵循以下指南即可。

那么如何在上面的api上使用gin-swagger呢?只需遵循以下指南即可。

1.使用 gin-swagger 规则为 api 和 main 函数添加注释,如下所示:
// @BasePath /api/v1

// PingExample godoc
// @Summary ping example
// @Schemes
// @Description do ping
// @Tags example
// @Accept json
// @Produce json
// @Success 200 {string} Helloworld
// @Router /example/helloworld [get]
func Helloworld(g *gin.Context)  {
	g.JSON(http.StatusOK,"helloworld")
}
2.使用 swag init 命令生成一个文档,生成的文档将存储在 docs/ 中。

3.像这样导入文档:我假设您的项目名为 github.com/go-project-name/docs。

import (
   docs "github.com/go-project-name/docs"
)

4.构建您的应用程序,然后访问 http://localhost:8080/swagger/index.html ,您将看到您的 Swagger UI。

5.完整的代码和文件夹亲属在这里:

package main

import (
   "github.com/gin-gonic/gin"
   docs "github.com/go-project-name/docs"
   swaggerfiles "github.com/swaggo/files"
   ginSwagger "github.com/swaggo/gin-swagger"
   "net/http"
)
// @BasePath /api/v1

// PingExample godoc
// @Summary ping example
// @Schemes
// @Description do ping
// @Tags example
// @Accept json
// @Produce json
// @Success 200 {string} Helloworld
// @Router /example/helloworld [get]
func Helloworld(g *gin.Context)  {
   g.JSON(http.StatusOK,"helloworld")
}

func main()  {
   r := gin.Default()
   docs.SwaggerInfo.BasePath = "/api/v1"
   v1 := r.Group("/api/v1")
   {
      eg := v1.Group("/example")
      {
         eg.GET("/helloworld",Helloworld)
      }
   }
   r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
   r.Run(":8080")

}

测试用项目树, swag init 在 .目录运行文章来源地址https://www.toymoban.com/news/detail-709306.html

.
├── docs
│   ├── docs.go
│   ├── swagger.json
│   └── swagger.yaml
├── go.mod
├── go.sum
└── main.go

到了这里,关于Gin-swaggo为gin框架提供Swagger 文档的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决GO安装gin框架(go get -u github.com/gin-gonic/gin)超时问题

    🍊gin框架github地址:https://github.com/gin-gonic/gin         按照官方文档安装gin,但是尝试了好几次,包括使用国内网络或者使用梯子,都超时失败了,爆了如下超时错误 🍊 解决方法如下 1、先查看go相关的配置 如上显示GOPROXY配置是https://proxy.golang.org,这个地址已经被墙了,

    2024年02月11日
    浏览(58)
  • [golang gin框架] 39.Gin商城项目-微服务实战之微服务架构

    单体架构在 中小企业内部 用的是非常多的,当 业务不复杂 , 团队规模不大 的时候,单体架构比微服务架构具有 更高的生产率 单体架构 当 业务比较复杂 , 并发量 比较大, 团队规模扩大的时候, 就需要引入微服务架构了,它比单体架构 具有 更高的生产率, 可以 节省成本 , 解

    2024年02月12日
    浏览(42)
  • Web框架Gin

    Web框架Gin HTTP协议简介 Restful风格编程 golang http标准库 Golang标准库template HttpRouter Gin 简介 Gin实现用户登录 Gin请求参数 Gin表单处理 Gin数据绑定 Gin访问静态文件集成BootStrap框架 Gin使用中间件 使用Gin BasicAuth中间件 Gin cookie的使用 Gin 使用Session Gin 实现restful风格的CRUD Gin 实现路由

    2024年02月10日
    浏览(35)
  • Go(四)gin框架

    1.1、下载和安装gin 下载包:go get github.com/gin-gonic/gin 使用go mod管理包: 1)初始化 Go Modules :go mod init your_module_name,这将创建一个 go.mod 文件,记录你的项目的模块信息和当前依赖关系; 2)复制依赖包到vendor目录 :\\\"go mod vendor\\\" 会将项目的所有包复制到vendor目录中。这包括

    2024年01月25日
    浏览(39)
  • Gin框架

    环境: https://goproxy.cn,driect github.com/gin-gonic/gin Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。 在本节中,我们将介绍 Gin 是什么,它解决了哪些问题,

    2023年04月17日
    浏览(31)
  • GIN框架介绍以及使用

    Gin 是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin,而且现在大多数企业都在使用Gin框架,反正学一学总没有错。 Go世界里最流行的Web框架,Github上有32K+star。

    2024年02月22日
    浏览(42)
  • gin框架-简单路由

    本文已参与「新人创作礼」活动,一起开启掘金创作之路。 路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。 这就不得不提restful架构了,在 RESTful 架构中,每个网址代表一种资源(也是每一个

    2023年04月22日
    浏览(34)
  • golang微框架Gin

    Gin是一个golang的微框架,基于httprouter,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 Gin特征 速度快:基于基数树的路由,内存占用小,没有反射,可预测的APi性能 中间件支持 传入的http请求可以有中间件链和最终操作处理,例如:Logger,Aut

    2024年02月09日
    浏览(41)
  • 安装 Gin 框架

    首先需要在目录下初始化一下 go 项目 可以看到生成了一个 go.mod 文件,然后使用以下命令安装 gin 框架 养成一个好习惯,在写项目之前先初始化项目 如果不初始化项目的话没有第三方库补全提示,例如 gin,并且在手动引入 github.com/gin-gonic/gin 后还会有红色波浪线 如果初始化

    2024年02月09日
    浏览(33)
  • Gin 框架之用户密码加密

    目录 一、引入 二、密码加密位置 三、如何加密 四、bcrypt 库加密 4.1 介绍 4.2 优点: 4.3 使用 五、小黄书密码加密实践 Gin是一个用Go语言编写的Web框架,而用户密码的加密通常是在应用程序中处理用户身份验证时的一个重要问题。 通常敏感信息你要防两类人: 研发人员:包

    2024年01月18日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包