首页 > 其他分享 >Go Swagger安装及使用

Go Swagger安装及使用

时间:2023-06-06 23:35:44浏览次数:50  
标签:Swagger com object errcode Param Failure Go swagger 安装

地址:

https://github.com/swaggo/gin-swagger

安装

  1. 根据go 版本使用命令
  • 1.70之前
go get -u github.com/swaggo/swag/cmd/swag
  • 1.70之后
go install github.com/swaggo/swag/cmd/swag@latest

查看是否成功
swag -v
swag version v1.8.12

其他安装命令

go get -u github.com/swaggo/gin-swagger   
go get -u github.com/swaggo/files
# 模版
go get -u github.com/alecthomas/template

注解说明

添加注解


// List
// @Summary 获取多个标签
// @Produce json
// @Param name query string false "标签名称" maxlength(100)
// @Param state query int false "状态" Enums(0, 1) default(1)
// @Param page query int false "页码"
// @Param page_size query int false "每业数量"
// @Success 200 {object} model.Tag "成功"
// @Failure 400 {object} errcode.Error "请求错误"
// @Failure 500 {object} errcode.Error "内部错误",
// @Router /api/v1/tags [get]
func (t Tag) List(c *gin.Context)   {}

// Create
// @Summary 创建标签
// @Produce json
// @Param name body string false "标签名称" minlength(3) maxlength(100)
// @Param state body int false "状态" Enums(0, 1) default(1)
// @Param creator body string true "创建着" minlength(3) maxlength(100)
// @Success 200 {object} model.Tag "成功"
// @Failure 400 {object} errcode.Error "请求错误"
// @Failure 500 {object} errcode.Error "内部错误"
// @Router /api/v1/tags [post]
func (t Tag) Create(c *gin.Context) {}

// Update
// @Summary 更新标签
// @Produce json
// @Param id path int true "标签id"
// @Param name body string false "标签名称" minlength(3) maxlength(100)
// @Param state body int false "状态" Enums(0, 1) default(1)
// @Param updater body string true "修改人" minlength(3) maxlength(100)
// @Success 200 {array} model.Tag "成功"
// @Failure 400 {object} errcode.Error "请求错误"
// @Failure 500 {object} errcode.Error "内部错误"
// @Router /api/v1/tags/{id} [put]
func (t Tag) Update(c *gin.Context) {}

// Delete
// @Summary 删除标签
// @Produce json
// @Param id path int true "标签id"
// @Success 200 {string} string "成功"
// @Failure 400 {object} errcode.Error "请求错误"
// @Failure 500 {object} errcode.Error "内部错误"
// @Router /api/v1/tags/{id} [delete]
func (t Tag) Delete(c *gin.Context) {}

main.go 添加文档说明

// @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

// @externalDocs.description  OpenAPI
// @externalDocs.url          https://swagger.io/resources/open-api/
func main() {
}

生产文档

swag int

路由设置文档访问路由

// 引入
import (
    ...
	swaggerFiles "github.com/swaggo/files"     // swagger embed files
	ginSwagger "github.com/swaggo/gin-swagger" // gin-swagger middleware
)

// 路由方法
// 设置访问api文档
	//url:= ginSwagger.URL("http://127.0.0.1:8080/swagger/doc.json")
	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))


访问API文档: http://127.0.0.1:8080/swagger/index.html

需要将docs目录引入,即可解决问题

import (
	_ "blog-service/docs"
)

成功显示

标签:Swagger,com,object,errcode,Param,Failure,Go,swagger,安装
From: https://www.cnblogs.com/smallyi/p/17462043.html

相关文章

  • cnetos7安装kibana
    1、打开kibana官网下载页面 https://www.elastic.co/cn/downloads/kibana2、下载历史版本  wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-x86_64.rpm3、安装kibanarpm-ivh kibana-7.6.2-x86_64.rpm  4、修改配置文件vim  /etc/kibana......
  • 算法 in Golang:Quicksort(快速排序)
    算法inGolang:Quicksort(快速排序)Quicksort(快速排序)快速排序O(nlog2^n),比选择排序要快O(n²)在日常生活中经常使用使用了D&C策略(分而治之)使用Quicksort排序数组不需要排序的数组(也就是BaseCase基线条件):[],空数组[s],单元素数组很容易排序的数组:[a,b],两......
  • RDS 、HDFS、 mapreduce 、spark 、hive、 hbase 、zookeeper 、kafka 、flume、mysql
    这些技术是大数据领域的常用组件,它们之间的配置文件依赖关系如下:RDS是一种关系型数据库,可以独立安装和使用,不需要依赖其他组件。HDFS是Hadoop分布式文件系统,通常与MapReduce一起使用。在Hadoop集群中,HDFS需要配置core-site.xml和hdfs-site.xml两个文件,其中core-site......
  • centOS 安装docker
    一、安装前必读在安装Docker之前,先说一下配置,我这里是Centos7Linux内核:官方建议3.10以上。注意:本文的命令使用的是root用户登录执行,不是root的话所有命令前面要加 sudo1.查看当前的内核版本[root@localhostvagrant]#uname-r3.10.0-327.4.5.el7.x86_64[root@l......
  • 202306062001-《远程Linux服务器——安装tomcat8、jdk1.8、mysql5——mysql 用sql建表
    因createtable...提示格式错误,什么NAME啊...,必查了一下,要设置,好多条语句(5条左右),是设置格式的。 但设置完了,说重启mysql,就失效,要重新设置(5条sql重新执行一遍!) 永久有效的解决办法是:修改“my.cnf”,我的修改如下:[client]default-character-set=utf8[mysql]default-......
  • Linux 安装Kafka及远程访问
    下载wget 官网tar-zxvfkafka_2.13-2.5.0.tgz启动kafka和zookeeper编写一个sh文件启动/opt/kafka_2.13-3.0.0/bin/zookeeper-server-start.sh/opt/kafka_2.13-3.0.0/config/zookeeper.properties&sleep5/opt/kafka_2.13-3.0.0/bin/kafka-server-start.sh/opt/kafka_......
  • Gorm - sql查询某个字段为空时赋默认值
    场景:查询时报错err{"error":"sql:Scanerroroncolumnindex0,name\"mobile\":convertingNULLtostringisunsupported"}总结:根据项目需要,在数据库查询时,可能需要对查询结果进行封装,为避免前端抛出空指针异常(NullPointException),对于没有值的字段也不能......
  • 基于Django的在线MOOC学习系统(1)——Django App 设计
    DjangoApp设计CourseApp用于课程基本信息,课程章节信息,课程视频信息,课程资源的管理CollegeApp用于学院基本信息,学院地址信息,学院教师信息的管理UserApp用于用户基本信息,用户邮箱验证码的管理OperationApp用于用户评论信息,用户收藏信息,用户消息信息,用户课程信息的管理Appm......
  • DjangoUeditor ImportError: No module named ‘widgets’的解决办法
    http://ojdbc.com/djangoueditor-importerror-no-module-named-widgets/最近在学习Django框架,按照网上教程集成DjangoUeditor时,出现错误,错误提示为:fromwidgetsimportUEditorWidget,AdminUEditorWidgetImportError:Nomodulenamed‘widgets’经查发现,DjangoUeditor是基于Pyt......
  • render_to_string() got an unexpected keyword argument 'context_instance'的解决方
    参考资料:render_to_string()gotanunexpectedkeywordargument‘status’TypeErrorat/post/render_to_response()gotanunexpectedkeywordargument‘context_instance’Djangoerror:render_to_response()gotanunexpectedkeywordargument‘context_instance’......