Gin: 使用gin-swagger包为你的Go项目自动生成接口文档

已解决目前网络上其他教程的坑。

安装依赖

go get github.com/swaggo/swag/cmd/swag
go get github.com/swaggo
go get github.com/swaggo/gin-swagger

初始化gin-swagger

swag init

集成到现有项目

对于小白的提醒:下方两个示例文件中,import语句中的demo是指go.mod中第一行的名称,这里作为示例就不修改了,但如果你要修改,确保这里和你的mod名字一样。

main.go主程序内容示例

在程序入口main函数之上,写下项目相关介绍信息注解。

package main

import (
	"demo/router"
)

// @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 path
func main() {
	r := router.NewRouter()
	r.Run(":8866")
}

router包内容示例

package router

import (
	_ "demo/docs"
	"net/http"

	swaggerFiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"

	"github.com/gin-gonic/gin"
)

// GreetingResponse 定义响应的模型
type GreetingResponse struct {
	Message string `json:"message"`
}

// @Summary 简单接口
// @Description 这是一个示例接口
// @Tags 简单
// @Accept  json
// @Produce  json
// @Param Authorization header string false "Bearer 用户令牌"
// @Success 200 {object} GreetingResponse "返回简单信息"
// @Router /greeting [get]
func GreetingHandler(c *gin.Context) {
	c.JSON(http.StatusOK, GreetingResponse{Message: "你好,世界!"})
}

// NewRouter 初始化Gin路由器并添加带处理函数的路由。
func NewRouter() *gin.Engine {
	r := gin.Default()
	// 配置访问Swagger页面的路由
	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
	// 添加一个访问路由
	r.GET("/greeting", GreetingHandler)
	return r
}

启动

初始化项目、安装依赖(这里命名为demo)、再次生成接口文档。

go mod init demo
go mod tidy
swag init

运行主程序

go run main.go

完事

浏览器打开地址查看吧!(这里的端口是示例中main.go主程序定义的)

http://localhost:8866/swagger/index.html
暂无评论

发送评论 编辑评论


				
上一篇
下一篇