Gin генерирует документацию Swagger

Go Swagger
Gin генерирует документацию Swagger

Это 29-й день моего участия в Gengwen Challenge.Подробности о мероприятии:Обновить вызов

Если ❤️моя статья оказалась полезной, пожалуйста, оставьте комментарий, подпишитесь и поставьте лайк. Это самый большой стимул для меня продолжать техническое творчество.Больше прошлых статей в моем личном блоге

Gin генерирует документацию Swagger

Введение в окружающую среду

  • Среда разработки: windows10 x64
  • Голанг: 1.16
  • Gin:1.7.0

Установить Сваггер

ide настроить го мод Поскольку я не выполнил свои обязательства, вы установилиgin 框架, поэтому я установил прямо в корневой каталог проектаswagполагаться

go get -u github.com/swaggo/swag/cmd/swag
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files
go get -u github.com/alecthomas/template

图片描述

аннотация метода вызова

Принцип генерации документов Swagger таков:Файл сканера, комментарии к методу. Поэтому добавьте каноническую аннотацию к методу, который является ключевымSwagger Стандартные комментарии

// AdminLogin godoc
// @Summary 管理员登陆
// @Description 管理员登陆
// @Tags 管理员接口
// @ID /admin_login/login
// @Accept  json
// @Produce  json
// @Param body body dto.AdminLoginInput true "body"    # [值得名称] body [值得类型] [是否必传] "[返回值名称]"
// @Success 200 {object} middleware.Response{data=dto.DemoInput} "success"
// @Router /admin_login/login [post]
func (adminlogin *AdminLoginController) AdminLogin(ctx *gin.Context) {
	// 定义传入数据结构
	params:=&dto.AdminLoginInput{}
	if err:=params.BindValidParam(ctx); err != nil {
		middleware.ResponseError(ctx, 1001, err)
		return
	}

	out:=&dto.AdminLoginOutput{Token:params.UserName}
	middleware.ResponseSuccess(ctx,out)
}

swagger установлен в роутере Gin

документrouter/route.go

# 加载依赖
import (
	"[项目名称]/docs"
	"github.com/gin-gonic/gin"
	"github.com/swaggo/files"
	"github.com/swaggo/gin-swagger"
)

func InitHttpServer() {
	var router *gin.Engine
	router = gin.Default()
	router.Static("/html", "./public")

	// 设置 swagger 访问路由
	router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

	router.Run(":" + _const.HTTP_SERVER_PORT)
}

Swagger генерирует документацию по API

корневой каталог проекта命令行Выполнение заказаswag init 图片描述

swag initКоманда создаст папку в корневом каталоге проекта.docs.图片描述

Доступ к swagger для создания документации

Выполните команду в корневом каталоге проектаgo run main.goЗапустите сетевую службу. В частности, посмотрите на свой сервисный порт настроек джина, используйте браузер для доступаhttp://localhost:[设置端口]/swagger/index.htmlВы можете увидеть только что сгенерированный интерфейсный документ图片描述