返回顶部
首页 > 资讯 > 后端开发 > GO >goswagger生成接口文档使用教程
  • 460
分享到

goswagger生成接口文档使用教程

2024-04-02 19:04:59 460人浏览 泡泡鱼
摘要

目录前言swagger介绍1、安装2、检测是否安装成功3、安装gin-swagger扩展使用1、添加注释2、生成接口文档数据3、引入gin-swagger渲染文档数据总结前言 这篇文

前言

这篇文章主要介绍了Go语言使用swagger生成接口文档的方法,希望能够对大家的学习或工作具有一定的帮助,需要的朋友可以参考下。

在前后端分离的项目开发过程中,如果后端同学能够提供一份清晰明了的接口文档,那么就能极大地提高大家的沟通效率和开发效率。那如何维护接口文档,历来都是令人头痛的,感觉很浪费精力,而且后续接口文档的维护也十分耗费精力。在很多年以前,也流行用Word工具写接口文档,这里面的问题很多,如格式不统一、后端人员消费精力大、文档的时效性也无法保障。

针对这类问题,最好是有一种方案能够既满足我们输出文档的需要又能随代码的变更自动更新,Swagger正是那种能帮我们解决接口文档问题的工具。

Swagger介绍

Swagger是基于标准的 Openapi 规范进行设计的,本质是一种用于描述使用JSON表示的Restful Api的接口描述语言,只要照着这套规范去编写你的注解或通过扫描代码去生成注解,就能生成统一标准的接口文档和一系列 Swagger 工具。Swagger包括自动文档,代码生成和测试用例生成。

1、安装

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

MacOS中安装 swag需要执行如下命令:

mv $GOPATH/bin/swag /usr/local/go/bin

2、检测是否安装成功

$ swag -v
swag version v1.8.4

3、安装gin-swagger扩展

$ go get -u -v github.com/swaggo/gin-swagger
$ go get -u -v github.com/swaggo/files
$ go get -u -v github.com/alecthomas/template

使用

使用gin-swagger为你的代码自动生成接口文档,一般需要下面三个步骤:

  • 按照swagger要求给接口代码添加声明式注释。
  • 使用swag工具扫描代码自动生成api接口文档数据。
  • 使用gin-swagger渲染在线接口文档页面。

1、添加注释

go-swapper注解规范说明:

注:注解详情可参见官网文档Swagger Documentation

注解描述
@Summary摘要
@ProduceAPI 可以产生的 MIME 类型的列表,MIME 类型你可以简单的理解为响应类型,例如:json、xml、html 等等
@Param参数格式,从左到右分别为:参数名、入参类型、数据类型、是否必填、注释
@Success响应成功,从左到右分别为:状态码、参数类型、数据类型、注释
@Failure响应失败,从左到右分别为:状态码、参数类型、数据类型、注释
@Router路由,从左到右分别为:路由地址,Http 方法

示例demo:

package main
import (
	"github.com/gin-gonic/gin"
	"github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
	_ "github/mwqnice/swag/docs" // 千万不要忘了导入把你上一步生成的docs
)
type Article struct{
	ID         uint32 `gORM:"primary_key" json:"id"`
	CreatedBy  string `json:"created_by"`
	ModifiedBy string `json:"modified_by"`
	CreatedOn  uint32 `json:"created_on"`
	ModifiedOn uint32 `json:"modified_on"`
	DeletedOn  uint32 `json:"deleted_on"`
	IsDel      uint8  `json:"is_del"`
	Title         string `json:"title"`
	Desc          string `json:"desc"`
	Content       string `json:"content"`
	CoverImageUrl string `json:"cover_image_url"`
	State         uint8  `json:"state"`
}
func NewArticle() Article {
	return Article{}
}
func main()  {
	r := gin.Default()
	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
	r.Run(":8088")
}
// @Summary 获取单个文章
// @Produce json
// @Param id path int true "文章ID"
// @Success 200 {object} Article "成功"
// @Failure 400 {object} string "请求错误"
// @Failure 500 {object} string "内部错误"
// @Router /api/v1/articles/{id} [get]
func (a Article) Get(c *gin.Context) {
}
// @Summary 获取多个文章
// @Produce json
// @Param name query string false "文章名称"
// @Param tag_id query int false "标签ID"
// @Param state query int false "状态"
// @Param page query int false "页码"
// @Param page_size query int false "每页数量"
// @Success 200 {object} Article "成功"
// @Failure 400 {object} string "请求错误"
// @Failure 500 {object} string "内部错误"
// @Router /api/v1/articles [get]
func (a Article) List(c *gin.Context) {
	return
}
// @Summary 创建文章
// @Produce json
// @Param tag_id body string true "标签ID"
// @Param title body string true "文章标题"
// @Param desc body string false "文章简述"
// @Param cover_image_url body string true "封面图片地址"
// @Param content body string true "文章内容"
// @Param created_by body int true "创建者"
// @Param state body int false "状态"
// @Success 200 {object} Article "成功"
// @Failure 400 {object} string "请求错误"
// @Failure 500 {object} string "内部错误"
// @Router /api/v1/articles [post]
func (a Article) Create(c *gin.Context) {
}
// @Summary 更新文章
// @Produce json
// @Param tag_id body string false "标签ID"
// @Param title body string false "文章标题"
// @Param desc body string false "文章简述"
// @Param cover_image_url body string false "封面图片地址"
// @Param content body string false "文章内容"
// @Param modified_by body string true "修改者"
// @Success 200 {object} Article "成功"
// @Failure 400 {object} string "请求错误"
// @Failure 500 {object} string "内部错误"
// @Router /api/v1/articles/{id} [put]
func (a Article) Update(c *gin.Context) {
	return
}
// @Summary 删除文章
// @Produce  json
// @Param id path int true "文章ID"
// @Success 200 {string} string "成功"
// @Failure 400 {object} string "请求错误"
// @Failure 500 {object} string "内部错误"
// @Router /api/v1/articles/{id} [delete]
func (a Article) Delete(c *gin.Context) {
	return
}

2、生成接口文档数据

格式化swag注解

$ swag fmt

在项目根目录执行以下命令,使用swag工具生成接口文档数据。

$ swag init

执行完上述命令后,如果你写的注释格式没问题,此时你的项目根目录下会多出一个docs文件夹。

./docs

├── docs.go

├── swagger.json

└── swagger.yaml

3、引入gin-swagger渲染文档数据

然后在项目代码中注册路由的地方按如下方式引入gin-swagger相关内容:

import (
	"github.com/gin-gonic/gin"
	"github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
	_ "github/mwqnice/swag/docs" // 千万不要忘了导入把你上一步生成的docs
)
//添加swagger访问路由
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

启动项目,在浏览器中输入地址:http://127.0.0.1:8088/swagger/index.html

总结

到此这篇关于go语言使用swagger生成接口文档的文章就介绍到这了, 希望可以对你的开发有一定帮助。

更多关于go swagger接口文档的资料请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: goswagger生成接口文档使用教程

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

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

猜你喜欢
  • goswagger生成接口文档使用教程
    目录前言Swagger介绍1、安装2、检测是否安装成功3、安装gin-swagger扩展使用1、添加注释2、生成接口文档数据3、引入gin-swagger渲染文档数据总结前言 这篇文...
    99+
    2024-04-02
  • thinkphp6使用Apidoc生成接口文档
    下载-配置-使用 下载Apidoc配置apidoc.php文件在控制器里添加注解打开文档 下载Apidoc 进入项目根目录,执行如下命令: composer require hg/ap...
    99+
    2023-10-03
    php 开发语言
  • 教你利用springboot集成swagger并生成接口文档
    效果图 实现步骤 1.maven中引入jar包,不同版本的swagger可能页面效果不一样。 <dependency> <groupI...
    99+
    2024-04-02
  • 【教程】如何使用Java生成PDF文档?
    在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享。而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行。下面,我们将为您介绍如何使用Java生成PDF文档...
    99+
    2023-09-02
    java servlet jvm
  • 怎么用java快速生成接口文档
    本篇内容主要讲解“怎么用java快速生成接口文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用java快速生成接口文档”吧!目录前言方案一,使用japidocs基本用法方案2,swagge...
    99+
    2023-06-20
  • Laravel使用Apidoc注解自动生成Api接口文档
    本教程从零开始搭建laravel项目,并安装Apidoc扩展及使用注解生成Api接口文档的教程,该扩展支持 多应用/版本、Markdown文档、在线接口调试、接口生成器、代码模板生成器、Mock调试数...
    99+
    2023-09-05
    laravel php doc 后端 api
  • Laravel swagger接口文档生成和管理
    接口开发随着时间推移接口会越来越多,随着多部门之间的协作越来越频繁, 维护成本越来越高, 文档的可维护性越来越差, 需要一个工具来管理这些接口的文档, 并能够充当mock server给调用方使用 这里推荐swagger生成和管理接口文档...
    99+
    2024-04-02
  • django怎么自动生成接口文档
    Django没有内置的功能来自动生成接口文档,但是可以使用第三方工具来实现自动生成接口文档。 以下是一些常用的自动生成接口文档的工具...
    99+
    2023-10-23
    django
  • SpringBoot使用swagger生成api接口文档的方法详解
    目录前言具体例子maven配置项目application.yml配置springApplication添加swagger注解在控制层添加swagger注解前言 在之前的文章中,使用m...
    99+
    2022-11-13
    SpringBoot swagger生成api接口文档 SpringBoot 生成api接口文档 SpringBoot swagger
  • golang组件swagger生成接口文档的方法
    这篇文章主要介绍“golang组件swagger生成接口文档的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“golang组件swagger生成接口文档的方法”文章能帮助大家解决问题。swagge...
    99+
    2023-06-30
  • SpringBoot2配置Swagger2生成API接口文档详情
    目录一、Swagger2介绍二、配置Swagger21、引入相关依赖2、创建swagger的配置类3、在启动类上添加注解扫描swagger的配置类,进行测试4、API模型5、定义接口...
    99+
    2024-04-02
  • java集成开发SpringBoot生成接口文档示例实现
    目录为什么要用Swagger ?Swagger集成第一步: 引入依赖包第二步:修改配置文件第三步,配置API接口Unable to infer base urlFor input s...
    99+
    2024-04-02
  • spring boot集成smart-doc自动生成接口文档详解
    目录前言功能特性1 项目中创建 /src/main/resources/smart-doc.json配置文件2 配置内容如下(指定文档的输出路径)3 pom.xml下添加配置4 运行...
    99+
    2024-04-02
  • golang组件swagger生成接口文档实践示例
    目录swagger介绍gin-swagger实战第一步:添加注释第二步:生成接口文档数据第三步:引入gin-swagger渲染文档数据swagger介绍 Swagger本质上是一种用...
    99+
    2024-04-02
  • PHP使用PHPWord生成word文档
    阅读目录 阐述 安装 使用 自动加载 实例化 添加文字内容 链接 图片 页眉 ...
    99+
    2023-09-03
    php 开发语言 前端
  • 如何使用eclipse生成java文档
    Project下的Generate Javadoc选项Javadoc command:设置javadoc生成程序,一般来说是JDK目录下bin目录的javadoc.exe。然后选择要生成文档的java项目,然后选择文档输出目录下一步这一步设...
    99+
    2018-07-02
    使用 eclipse java 文档
  • java集成开发SpringBoot生成接口文档的方法是什么
    这篇文章主要介绍“java集成开发SpringBoot生成接口文档的方法是什么”,在日常操作中,相信很多人在java集成开发SpringBoot生成接口文档的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-25
  • 教你使用Python根据模板批量生成docx文档
    目录一、需求说明二、实验准备三、代码实现四、实验结果一、需求说明 能够根据模板批量生成docx文档。具体而言,读取excel中的数据,然后使用python批量生成docx文档。 二、...
    99+
    2024-04-02
  • java快速生成接口文档的三种解决方案
    目录前言方案一,使用japidocs基本用法方案2,swagger + knife4j生成步骤方案3,开源的接口文档生成工具总结前言 常常在项目收尾阶段,客户需要项目的接口文档,或者...
    99+
    2024-04-02
  • 【Apifox Helper】自动生成接口文档,IDEA+Apifox懒人必备
    文章目录 前言🍊缘由接口文档对接爽,整理起来真费脑 ⏲️本文阅读时长约10分钟 🥮前置条件1. IDEA开发工具2. Apifox(不必要) 🎯主要目标一秒生成...
    99+
    2023-08-16
    intellij-idea java ide
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作