go-swagger使用——自动生成web api
最近打算用go重写自己的网站,想着找一个自动生成API的网站,大家一致推荐go-swagger,想着一个库应该很简单的使用,本来想着简单的事情看看国内网站教程就好了,谁知道道路太坎坷了。本篇不讲swagger原理,只讲在安装过程遇到了那些问题,针对go小白。
go install github.com/swaggo/swag/cmd/swag
还有一点注意的是,很多博客引入的是这个文件,他现在改名了并不是这样import的 解决办法是使用这个import swaggerFiles "github.com/swaggo/files"
至于其他属性,就自己学一学吧,这里就不赘述了
附上一个简易版的能跑起来的代码,不含逻辑处理,_ "swawgger/docs"这个包名讲一下,swagger是go.mod的名字,这个是把swag init 的内容导入进来。
package main
import (
"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files"
gs "github.com/swaggo/gin-swagger"
_ "swawgger/docs" // 千万不要忘了导入把你上一步生成的docs
)
// @title API文档
// @version 1.0
// @description 怕自己忘记了,记录一下
// @BasePath /api/v1
// @contact.name dxgzg
// @contact.url http://dxgzg.site
// @contact.email support@swagger.io
// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
// @host 这里写接口服务的host
// @BasePath 这里写base path
func main() {
r := gin.New()
// liwenzhou.com ...
r.GET("/swagger/*any", gs.WrapHandler(swaggerFiles.Handler))
r.Run()
}
// ShowAccount godoc
// @Summary Show an account
// @Description get string by ID
// @Tags accounts
// @Accept json
// @Produce json
// @Param id path int true "Account ID"
// @Router /accounts/{id} [get]
func ShowAccount(ctx *gin.Context) {
}
// second godoc
// @Summary Show an account
// @Description get string by ID
// @Tags accounts
// @Accept json
// @Produce json
// @Param id path int false "Account ID"
// @Router /second/id [get]
// @Success 200 {object} string
func second(ctx *gin.Context) {
}
如果不清楚怎么使用的推荐看这篇博客
