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


相关文章
|
1月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
215 4
|
2月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
275 86
|
8月前
|
缓存 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
本文介绍了在Spring Boot中配置Swagger2的方法。通过创建一个配置类,添加`@Configuration`和`@EnableSwagger2`注解,使用Docket对象定义API文档的详细信息,包括标题、描述、版本和包路径等。配置完成后,访问`localhost:8080/swagger-ui.html`即可查看接口文档。文中还提示了可能因浏览器缓存导致的问题及解决方法。
1006 0
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
|
4月前
|
人工智能 负载均衡 监控
使用 Go 和 Gin 实现高可用负载均衡代理服务器
本文基于Go语言和Gin框架,实现了一个企业级负载均衡代理服务器,支持动态路由、健康检查、会话保持等功能。具备高可用性与高性能,单节点支持100k+ QPS,延迟达亚毫秒级,并提供完整的压力测试方案与优化建议。
157 7
|
4月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
5月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
9月前
|
Shell Go 开发工具
【环境】Rocky8使用gvm配置Go多版本管理的微服务开发环境(go-zero)
通过本文的介绍,我们详细讲解了如何在Rocky8上使用gvm来管理多个Go版本,并配置go-zero框架的开发环境。通过gvm的灵活管理,开发者可以轻松切换不同的Go版本,以适应不同项目的需求。同时,go-zero框架的使用进一步提升了微服务开发的效率和质量。希望本文能帮助开发者构建高效的Go语言开发环境,提高项目开发的灵活性和稳定性。
298 63
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
1299 1
|
JSON Go API
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
|
关系型数据库 MySQL Go
go抽取mysql配置到yaml配置文件
go抽取mysql配置到yaml配置文件
下一篇
oss云网关配置