Golang Gin 项目使用 Swagger
标签(空格分隔): Go
首先需要github.com/swaggo/gin-swagger
和github.com/swaggo/gin-swagger/swaggerFiles
(参见gin-swagger)。
然后根据 github.com/swaggo/swag/cmd/swag文档获取到swag工具;执行swag init
在项目根目录下生成docs
文件夹。然后在路由中import _ "/docs"
。这时候编译程序,打开http://localhost:8080/swagger/index.html
就可以看到API。有时候打开页面js报错,多刷新几次就有了(原因未知)。
注意项目目录下,包依赖不能用src等名称,请看以下源码:
//exclude vendor folder
if ext := filepath.Ext(path); ext == ".go" &&
!strings.Contains(string(os.PathSeparator)+path, string(os.PathSeparator)+"vendor"+string(os.PathSeparator)) &&
!strings.Contains(string(os.PathSeparator)+path, string(os.PathSeparator)+".history"+string(os.PathSeparator)) &&
!strings.Contains(string(os.PathSeparator)+path, string(os.PathSeparator)+".idea"+string(os.PathSeparator)) &&
!strings.Contains(string(os.PathSeparator)+path, string(os.PathSeparator)+".git"+string(os.PathSeparator)) {
fset := token.NewFileSet() // positions are relative to fset
astFile, err := goparser.ParseFile(fset, path, nil, goparser.ParseComments)
swag工具排除了vendor
、.history
、.idea
、.git
目录下的文件(参见pl)。可以使用godep等工具将依赖包放在vendor目录下。