1

我正在使用swaggo根据godoc语法生成 API 文档。

源文件夹和文件

|-post
|--controller.go
|--response.go

对于这个定义:

controller.go

package post

...

// Index godoc
// @Summary Index Post
// @Success 200 {array} []*Response
// @Router /v1/posts [get]
func Index(ctx *gin.Context) {
  ...
}

Response是在另一个文件中定义的,但在同一个包中。

response.go

package post

// Response  is post response body
type Response struct {
    ID   int64  `json:"id"`
    Name string `json:"name"`

    CreatedAt string `json:"created_at"`
    UpdatedAt string `json:"updated_at"`
}

但是当运行swag init生成swagger docs时,它说:

2021/01/29 09:39:56 Generate swagger docs....
2021/01/29 09:39:56 Generate general API Info, search dir:./
2021/01/29 09:39:56 ParseComment error in file application/post/controller.go :cannot find type definition:

当我将Response结构移动到 时controller.go,它可以工作。

如何用 godoc 或 swago 导入它?

4

4 回答 4

3

您需要将 --parseDependency 附加到 swag init 命令。

于 2021-04-27T13:52:19.350 回答
1

如需快速解决方案,请运行

go get -u github.com/swaggo/swag/cmd/swag@v1.6.7

您可以在此处找到有关此解决方案的更多信息。

于 2021-10-03T15:05:56.590 回答
0

我也遇到了这个问题,但是我用下面的命令解决了:

swag init --parseDependency --parseInternal
于 2021-09-16T07:27:24.077 回答
0

“swag init --parseDependency true”应该可以解决您的问题

于 2021-05-04T01:57:27.997 回答