参考:https://github.com/swaggo/swag/blob/master/README_zh-CN.md
步骤说明
- go install github.com/swaggo/swag/cmd/swag@latest
- 在项目根目录下,执行 swag init 命令,生成swagger文件。
- 修改 main.go 文件,添加注释。
// @title Server Name // @version 1.0 // @description Server Description // @BasePath /basepath func main() { r := gin.Default() c := controller.NewController() v1 := r.Group("/api/v1") { accounts := v1.Group("/accounts") { accounts.GET(":id", c.ShowAccount) accounts.GET("", c.ListAccounts) accounts.POST("", c.AddAccount) accounts.DELETE(":id", c.DeleteAccount) accounts.PATCH(":id", c.UpdateAccount) accounts.POST(":id/images", c.UploadAccountImage) } //... } r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) r.Run(":8080") } //...
- 设置 swag 注释格式。
// ShowAccount godoc // @Summary Show an account // @Description get string by ID // @Tags accounts // @Accept json // @Produce json // @Param id path int true "Account ID" // @Success 200 {object} model.Account // @Failure 400 {object} httputil.HTTPError // @Failure 404 {object} httputil.HTTPError // @Failure 500 {object} httputil.HTTPError // @Router /accounts/{id} [get]
- swag init 命令生成 swagger.json 文件。
- 需要在main中加入文件引用。
_ "server_name/docs"
- 运行程序,然后在浏览器中访问 http://localhost:8080/swagger/index.html 。
可能存在的问题
- unkown LeftDelim and RightDelim in swag.Spec #1568
go get -u github.com/swaggo/swag
- 没有找到docs 需要在main中加入文件引用。
_ "server_name/docs"
文档信息
- 本文作者:pnightowl
- 本文链接:https://pnightowlzy.github.io/wiki/web-swagger/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)