Go --- gin配置swagger

简介: Go --- gin配置swagger

gin配置swagger


不多说废话,直接开始 准备工作:

  1. 下载swag for go

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

  1. 然后执行

swag init

你就会发现自己的项目中多出一个docs文档文件

  1. 下载 gin-swagger

go get -u github.com/swaggo/gin-swagger

go get -u github.com/swaggo/files

  1. 在你的代码中引入
import "github.com/swaggo/gin-swagger" // gin-swagger middleware
import "github.com/swaggo/files" // swagger embed files

测试:

测试方法:

// 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")
}

当这个方法存在时,再次使用swag init将会更新文档中的信息

如果要使用这个文档就要先引用

import (
    docs "GinTest/swag/docs"
)

然后再 main.go 中配置swagger

func main()  {
  r := gin.Default()
  docs.SwaggerInfo.Title = "Swagger Example API"
  docs.SwaggerInfo.Description = "This is a sample server Petstore server."
  docs.SwaggerInfo.Version = "1.0"
  docs.SwaggerInfo.Host = "localhost:8080"
  docs.SwaggerInfo.Schemes = []string{"http", "https"}
  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")
}

此时的项目结构为

启动项目,然后访问

http://localhost:8080/swagger/index.html

这时你就会看到

所有代码和命令

需要安装

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

go get -u github.com/swaggo/gin-swagger

go get -u github.com/swaggo/files

需要在代码中导入的

import "github.com/swaggo/gin-swagger" // gin-swagger middleware
import "github.com/swaggo/files" // swagger embed files
import  docs "GinTest/swag/docs" // your docs

测试代码:

package main
import (
  docs "GinTest/swag/docs"
  "github.com/gin-gonic/gin"
  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.Title = "Swagger Example API"
  docs.SwaggerInfo.Description = "This is a sample server Petstore server."
  docs.SwaggerInfo.Version = "1.0"
  docs.SwaggerInfo.Host = "localhost:8080"
  docs.SwaggerInfo.Schemes = []string{"http", "https"}
  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")
}

注释格式请参考:通用API信息

gin-swagger项目官网:gin-swagger


相关文章
|
6月前
|
Go 数据安全/隐私保护
go 基于gin编写encode、decode、base64加密接口
go 基于gin编写encode、decode、base64加密接口
55 2
|
3月前
|
JSON Go API
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
|
3月前
|
关系型数据库 MySQL Go
go抽取mysql配置到yaml配置文件
go抽取mysql配置到yaml配置文件
|
2月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
4月前
|
Unix 编译器 Go
|
3月前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
4月前
|
Linux Go
Linux——windows10下的Ubuntu18.04安装并配置go环境
Linux——windows10下的Ubuntu18.04安装并配置go环境
55 1
|
4月前
|
JSON 缓存 监控
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
Viper 是一个强大的 Go 语言配置管理库,适用于各类应用,包括 Twelve-Factor Apps。相比仅支持 `.ini` 格式的 `go-ini`,Viper 支持更多配置格式如 JSON、TOML、YAML
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
|
5月前
|
JSON 中间件 Go
Go语言Web框架Gin介绍
【7月更文挑战第19天】Gin是一个功能强大、高性能且易于使用的Go语言Web框架。它提供了路由、中间件、参数绑定等丰富的功能,帮助开发者快速构建高质量的Web应用。通过本文的介绍,你应该对Gin框架有了初步的了解,并能够使用它来开发简单的Web服务。随着你对Gin的深入学习和实践,你将能够利用它构建更复杂、更强大的Web应用。
|
4月前
|
Java
SpringBoot 配置 Swagger
SpringBoot 配置 Swagger
41 0