首页 > 其他分享 >golang 生成swagger 文档

golang 生成swagger 文档

时间:2023-02-18 16:55:21浏览次数:46  
标签:github golang controller accounts gin 文档 swagger com

 

github:

https://github.com/swaggo/swag/blob/master/README_zh-CN.md

 

参考:https://www.cnblogs.com/cxykhaos/p/15345317.html

 

第一步:下载swag

命令:go install github.com/swaggo/swag/cmd/swag@latest

 

通过swag -v 查看命令

 

 

 

通过swag init 生成文档

 

 

 

 

 

项目结构:

 

 

 

controller -》 user.go
package controller

import (
    "github.com/gin-gonic/gin"
    "net/http"
    "strconv"
    "swagger/model"
)

// @Summary 用户服务 (摘要)
// @Description 用户服务2
// @Tags 用户服务
// @Accept mpfd
// @Produce json
// @Param Id query int true "用户id"
// @Success        200    {object}        model.User
// @Failure 400 {string} string "{"msg": "who are you"}"
// @Router /GetUserById [get]
func GetUserById(c *gin.Context) {
    userId, _ := strconv.Atoi(c.Query("Id"))
    c.JSON(http.StatusOK, gin.H{
        "code": 200,
        "msg":  "success",
        "data": model.User{
            Id:       userId,
            UserName: "tom",
            Mobile:   "15888888888",
        },
    })
    return
}
View Code

 

 model -> user.go

package model

import "github.com/gofrs/uuid"

type User struct {
    Id       int    /*主键*/
    UserName string //用户名
    Mobile   string //手机号码
    UUID     uuid.UUID
}
View Code

 

main.go

要引入doc

 

 

package main

import (
    "github.com/gin-gonic/gin"
    "github.com/swaggo/files"
    "github.com/swaggo/gin-swagger"
    "swagger/controller"
    _ "swagger/docs"
)

// gin-swagger middleware
// swagger embed files

// @title           Swagger Example API
// @version         1.0
// @description     This is a sample server celler server.
// @termsOfService  http://swagger.io/terms/

// @contact.name   API Support
// @contact.url    http://www.swagger.io/support
// @contact.email  [email protected]

// @license.name  Apache 2.0
// @license.url   http://www.apache.org/licenses/LICENSE-2.0.html

// @host      localhost:8080
// @BasePath  /api/v1

// @securityDefinitions.basic  BasicAuth
func main() {
    /////////////
    r := gin.Default()
    //c := controller.NewController()
    v1 := r.Group("/api/v1")
    {
        v1.GET("/GetUserById", controller.GetUserById)
        //accounts := v1.Group("/accounts")
        //{
        //    //accounts.GET(":id", controller.HandleHello)
        //    accounts.GET("/GetUserById", controller.GetUserById)
        //    //accounts.GET("", c.ListAccounts)
        //    //accounts.POST("", c.AddAccount)
        //    //accounts.DELETE(":id", c.DeleteAccount)
        //    //accounts.PATCH(":id", c.UpdateAccount)
        //    //accounts.POST(":id/images", c.UploadAccountImage)
        //}
        //...
    }
    r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    r.Run(":8080")
}
View Code

 

标签:github,golang,controller,accounts,gin,文档,swagger,com
From: https://www.cnblogs.com/nsky/p/17124899.html

相关文章

  • Golang基础-字符串
    StringsAstringinGoisanimmutable(不可变的)sequenceofbytes,whichdon'tnecessarilyhavetorepresentcharacters.doublequotes("")和backticks(`)的区别......
  • Golang基础-Basics
    PackagesGo语言中的包和其他语言的库或模块的概念类似,目的都是为了支持模块化、封装、单独编译和代码重用。一个包的源代码保存在一个或多个以.go为文件后缀名的源文件中,......
  • 【信管12.1】信息文档管理与配置管理
    信息文档管理与配置管理对于项目管理来说,文档非常重要,如果是传统的工程行业项目的话,仅仅标书就是几百上千页的。相对来说,其实信息系统开发项目已经好很多了。另外就是配置项......
  • SpringBoot 官方文档示例(90):整合jpa时,自定义名称映射
    在SpringBoot整合jpa时默认将实体类的名称的驼峰映射成下划线的表名。也就是使用CamelCaseToUnderscoresNamingStrategy。可以通过自定义的方式来指定上述的映射规则,可以......
  • SpringBoot 官方文档示例(89):使用DataSourceBuilder构建数据源
    一、在application.properties中配置数据源信息app.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx/testapp.datasource.jdbcUrl=jdbc:mysql://xxx.xxx.xxx.xxx/testapp.data......
  • SpringBoot 官方文档示例(88):配置logback把日志写到文件
    一、配置日志文件名logging.file.name=myapplication.log二、在resources下创建logback-spring.xml配置文件<?xmlversion="1.0"encoding="UTF-8"?><configuration><in......
  • golang流程控制if,switch分支
    if分支if单分支if条件表达式{逻辑代码}packagemainimport"fmt"funcmain(){ //varaint=9 //ifa<10{//判断a《10位true,所以为执行下面的打印a的......
  • 官方文档阅读笔记(二)2.安装 Djnago
    前提条件安装Python而且Python自带轻量级数据库SQLite。设置数据库也可以不设置默认使用SQLitePostgreSQL。你也可以使用MariaDB、MySQL或者Oracle......
  • 62-CICD持续集成工具-Jenkins构建Golang的web项目
    实现Golang应用源码编译并部署安装Golang环境#编译安装[root@jenkins~]#catinstall_go.sh#!/bin/bashGO_VERSION=1.18.4URL=https://studygolang.com/dl/golang/go${......
  • golang运算符
    1.算术运算符算术运算符有:+,-,*,/,%,++,--1.1加号(+)表示正数数字相加字符串拼接packagemainimport( "fmt")funcmain(){ num1:=+4 num2:=8 str1:="abc......