广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Swaggo零基础入门教程
  • 411
分享到

Swaggo零基础入门教程

Swaggo入门GolangSwaggo入门 2023-01-28 09:01:31 411人浏览 八月长安
摘要

目录配置流程注意区分下载swagGo初始化快速上手gin-swagger简单测试详细配置配置流程 注意区分 go-swagger != swaggo 二者功能差不多,都是生成接口文档

配置流程

注意区分

go-swagger != swaggo

二者功能差不多,都是生成接口文档用的;

前者构建速度极慢且官方文档极不友好;

后者构建速度快且上手简单,故我们这里采用它;

下载swaggo

项目根目录下(即与 go.mod 同级的文件夹)命令行执行此代码,下载 swaggo

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

之后就是关键的 swag 环境变量配置!

  • 进入你之前设置的 GOPATH 目录下
  • 进入该文件夹:pkg\mod\github.com\swaggo\swag@v1.8.9\cmd\swag,发现里面有一个文件 main.go
  • 在当前文件夹下打开命令行,输入 go build 执行构建过程
  • 构建完毕得到 swag.exe ,复制他
  • 丢到 golang 根目录下的 bin 文件夹内即可(前提是你之前在系统变量 path 里面添加了%GOROOT/bin 这个路径值,否则你依然需要重新配置一遍系统变量)

更新:对于版本 go1.18+,可以直接使用 go init 代替 go build,这样做的好处是可以直接省去后面繁琐的变量配置了

此时在命令行输入 swag -v 后可以看见版本号则表示环境变量配置完毕

初始化

进入项目根目录,保证当前目录下存在至少一个 go 文件(比如主入口文件 main.go

当前目录下打开命令行,输入 swag init 即可根据 go 文件自动构建 swagger 文档了;

新生成的文档存放在 docs 文件夹下

快速上手

gin-swagger

官方参考文档https://github.com/swaggo/gin-swagger

项目根目录执行代码安装依赖:

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

简单测试

在测试前务必先执行 swag init 生成对应 docs 文件!

import 内需要手动导入 docs,其余的两个包 goland 会自动处理

通过注释编写接口信息,然后于 main 方法注册 swagger-ui 的界面路由就完毕了

package main
import (
    // 这里需要我们手动导入docs,不然报错
    // 因为该包我们没有在代码中实际引用到,故别名需要取名为下划线
	_ "ginoj/docs"
	"github.com/gin-gonic/gin"
    // 这两个是固定的,不用修改直接复制黏贴导包
	swaggerfiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
	"net/Http"
)
// @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() {
	router := gin.Default()
    // 注册swagger-ui界面路由
	router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
	router.Run(":10001")
}

此时进入localhost:8080/swagger/index.html 就可以看见接口文档了(注意这里的端口修改为你使用的那一个!)

详细配置

通过上述操作我们发现依然会提示缺失了 spec 文件,这是我们没有执行 init 的缘故;

注意,每次修改一次文档都必须执行 swag init 一次,并且重启服务器才可以正常渲染;

我们把 main.go 改造为这个样子,为 main 添加了一些全局注释

package main
import (
	_ "ginoj/docs"
	"github.com/gin-gonic/gin"
	swaggerfiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
	"net/http"
)
// Helloworld
// @Description a simple example
// @Tags example
// @Accept json
// @Produce json
// @Param id path int true "shit"
// @Success 200 {string} json "{"status":"success"}"
// @Router /helloworld [get]
func Helloworld(g *gin.Context) {
	g.JSON(http.StatusOK, "helloworld")
}
// @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  support@swagger.io
// @license.name  MIT
// @license.url   http://www.apache.org/licenses/LICENSE-2.0.html
// @host      localhost:10001
func main() {
	router := gin.Default()
	router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
	router.Run(":10001")
}

回到根目录下执行 swag init,之后重启服务器即可看到文档了

到此这篇关于Swaggo零基础入门教程的文章就介绍到这了,更多相关Swaggo入门内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: Swaggo零基础入门教程

本文链接: https://www.lsjlt.com/news/178430.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Swaggo零基础入门教程
    目录配置流程注意区分下载swaggo初始化快速上手gin-swagger简单测试详细配置配置流程 注意区分 go-swagger != swaggo 二者功能差不多,都是生成接口文档...
    99+
    2023-01-28
    Swaggo入门 Golang Swaggo入门
  • SQL 零基础入门教程
    目录一、了解 SQL二、检索数据三、排序检索数据四、过滤数据五、高级数据过滤六、用通配符进行过滤七、创建计算字段八、使用函数处理数据九、汇总数据十、分组数据十一、使用子查询十二、联结表十三、创建高级联结十四、组合查询十五、插入数据十六、更...
    99+
    2014-09-15
    SQL 零基础入门教程
  • HTML入门零基础教程(四)
    嗨,大家好,我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助,请支持一波。 希望未来可以一起学习交流。 通过前三篇的学习,相信你们对HTML有了一些基础的了解,那么我们就来先做一个小练习,巩固一下之前所学习的知识。 目...
    99+
    2023-08-31
    html 前端 css javascript vscode
  • 【JavaWeb】HTML零基础入门
    ✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaWeb】 ✈️✈️本篇内容:HTML基础语法详解,附带综合案例。 🚀🚀代码托管平台github:Ja...
    99+
    2023-10-18
    html java 前端
  • Spring零基础入门IOC
    目录1.HelloSpring2.IOC创建对象方式2.1.通过无参构造方法来创建2.2.通过有参构造方法来创建1.HelloSpring 导入Jar包 <dependen...
    99+
    2022-11-13
    Spring IOC容器 Spring IOC
  • python入门基础教程
    Python是一门简单易学、功能强大的编程语言,适合初学者入门。下面是一个简要的Python入门基础教程,帮助您快速上手Python编程。1. 安装Python:首先,您需要在计算机上安装Python解释器。您可以从Python官方网站(h...
    99+
    2023-10-25
    python 入门 基础教程
  • mongodb 基础入门教程
    算是学习下来精炼的笔记,希望对大家有帮助。如果有问题欢迎大家指正。 0.概述 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为W...
    99+
    2015-07-29
    mongodb 基础入门教程
  • Netty网络编程零基础入门
    目录OSI七层网络模型Socket技术TCP协议Java语言创建socket应用http协议OSI七层网络模型 应用层:Http协议、文件服务器、邮件服务器 表示层:数据转换解决不同...
    99+
    2022-11-13
    Netty网络编程 Netty编程
  • 阿里云服务器教程零基础入门指南
    阿里云服务器是阿里巴巴推出的一种云计算产品,为用户提供灵活、高效、安全的云计算服务。本文将为您提供一份零基础入门的阿里云服务器教程,让您轻松上手。 一、了解阿里云服务器阿里云服务器是阿里云提供的云计算产品,可以帮助您快速搭建和运行网站、应用...
    99+
    2023-11-15
    阿里 入门 服务器
  • Java零基础入门数组
    目录认识数组数组的初始化默认初始化静态初始化动态初始化数组有关的问题数组的遍历求最值问题查询子元素Arrays工具类二维数组二维数组初始方式二维数组的遍历认识数组 数组的定义 数组是...
    99+
    2022-11-13
  • Vueexpress鉴权零基础入门
    目录token图示一点通express鉴权下载加密/解密包加密基本使用(生成token)传递Token查看token验证token讲在前面的话:一个成熟的全栈工程师开发的前后端项目鉴...
    99+
    2023-02-15
    Vue express鉴权 Vue express
  • SQL 教程-入门基础篇
    文章目录 SQL 简介SQL 语法SQL SELECT 语句SQL SELECT DISTINCT 语句SQL WHERE 子句SQL AND & OR 运算符SQL ORDER BY...
    99+
    2023-08-31
    sql 数据库 mybatis mysql
  • Python pygame入门基础教程
    本篇文章给大家带来了关于Python的相关知识,大家都知道pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音,下面介绍了关于Python pygame新手入门基础教程的相关资料,希望对大家有帮助。【相关推荐:Python...
    99+
    2022-08-08
    python
  • EF Core基础入门教程
    EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可。 EF Co...
    99+
    2022-11-13
  • 万字【Python基础】保姆式教学,零基础快速入门Python
    前言 又是爆肝干文的日子,继上次说要出一期Python新手入门教程系列文章后,就在不停地整理和码字,终于是把【基础入门】这一块给写出来了。 高级编程的【正则表达式】和【面向对象编程】内容我在之前已经...
    99+
    2023-09-02
    python 爬虫 函数闭包 元组 列表
  • C语言零基础入门(1)
    目录1. C语言简介1.1 C语言发展史1.2 C语言的特点1.3算法及其表示1.4常用算法介绍总结1. C语言简介 1.1 C语言发展史 C语言是一种广泛使用的面向过程的计算机程序...
    99+
    2022-11-13
  • C语言零基础入门(2)
    目录1. 数组1.1 一维数组1.1.1 一维数组的定义1.1.2 一维数组的初始化1.1.3 一维数组的引用1.2 二维数组及多维数组1.2.1 二维数组的定义1.2.2 二维数组...
    99+
    2022-11-13
  • PyTorch零基础入门之构建模型基础
    目录一、神经网络的构造二、神经网络中常见的层2.1不含模型参数的层2.2含模型参数的层(1)代码栗子1(2)代码栗子22.3二维卷积层stride2.4池化层三、LeNet模型栗子三...
    99+
    2022-11-12
  • OpenMV零基础教程
    一、资料导航         “工欲善其事,必先利其器”。在正式学习OpenMV之前,你必须知道一条或几条OpenMV的学习途径。这里推荐星瞳科技的中文官网教程,这个教程里面包括了OpenMV IDE的下载和安装、OpenMV上手教程、Op...
    99+
    2023-08-31
    python stm32
  • Spring零基础入门WebFlux响应式编程
    目录简介响应式编程Reactor信号操作符SpringWebflux执行流程和API注解实现SpringWebflux说明:基于atguigu学习笔记。 简介 Webflux是 Sp...
    99+
    2022-11-13
    Spring WebFlux Spring WebFlux响应式编程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作