go語言框架gin之集成swagger


1、安裝swag

在goLand中直接使用go get -u github.com/swaggo/swag/cmd/swag命令安裝會報錯

翻了很多博客,都沒找到太合適的辦法,根據博客中所寫的操作還是會報錯,最后用git直接下載也挺方便的,類似這種問題都可以使用此方法

 此時執行swag -v命令判斷是否安裝成功,會返回以下錯誤

2、go install

進入gopath下src\github.com\swaggo\swag\cmd\swag路徑執行go install命令,可能會報如下錯誤

此時可以按照1中的git clone方法下載所需包,但是包也可能存在於github.com目錄下,如果存在此目錄下只需要移動到golang.org/x目錄下即可

3、初始化swag

執行完go install命令后如果沒有報錯出現,就可以cd到項目主目錄執行swag init命令初始化swagger了

4、為功能編寫swagger注解

package main

import (
    _ "./docs"
    "github.com/gin-gonic/gin"
    "github.com/swaggo/gin-swagger"
    "github.com/swaggo/gin-swagger/swaggerFiles"
    "net/http"
)

// @Summary 打印測試功能
// @title Swagger Example API
// @version 0.0.1
// @description  This is a sample server Petstore server.
// @BasePath /api/v1
// @Host 127.0.0.1:8080
// @Produce  json
// @Param name query string true "Name"
// @Success 200 {string} json "{"code":200,"data":"name","msg":"ok"}"
// @Router / [get]
func Print(context *gin.Context) {
    var (
        name string
    )
    name = context.Query("name")
    context.JSON(http.StatusOK, gin.H{
        "code": http.StatusOK,
        "msg":  "success",
        "data": name,
    })
}

func main() {
    var (
        route *gin.Engine
        v1    *gin.RouterGroup
    )
    route = gin.Default()
    route.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    //gin.SetMode(gin.ReleaseMode)
    v1 = route.Group("/api/v1")
    {
        v1.GET("/", Print)
    }

    route.Run()
}

 

5、生產swagger文件

 swag init

{
"swagger": "2.0",
"info": {
"description": "This is a sample server Petstore server.",
"title": "Swagger Example API",
"contact": {},
"license": {},
"version": "0.0.1"
},
"host": "127.0.0.1:8080",
"basePath": "/api/v1",
"paths": {
"/": {
"get": {
"description": "This is a sample server Petstore server.",
"produces": [
"application/json"
],
"summary": "打印測試功能",
"parameters": [
{
"type": "string",
"description": "Name",
"name": "name",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "{\"code\":200,\"data\":\"name\",\"msg\":\"ok\"}",
"schema": {
"type": "string"
}
}
}
}
}
}
}

 

6、啟動項目展示結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM