在golang项目中使用swaggo 文档的时候报错。
项目中使用gin+gorm(postgresql) 的方式搭建,在添加注释的时候报错,不知道有没有解决方案?
psql支持数组,我就在model 的images 字段中使用了引用的pq.StringArray
// gorm Model
type Post struct{
Images pq.StringArray `json:"images" gorm:"type:text[]"`
}
在路由中使用
type ListPostReq struct { PageSize int `json:"pageSize"` Page int `json:"page"`}type ListPostRes struct { List []database.Post `json:"list"` Total int64 `json:"total"`}
// @Summary 获取列表// @Description 列表// @Tags Post// @Accept json// @Produce json// @Param query query ListPostReq true "ListPostReq object"// @Success 200 {object} ListPostRes// @Failure 500// @Router /post/list [get]func listPost(c *gin.Context) { page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "10")) res := listPostRes{} log.Println(page, pageSize) database.DB.Model(&database.Post{}).Count(&res.Total) result := database.DB.Limit(pageSize).Offset((page - 1) * pageSize).Find(&res.List) if result.Error != nil { c.JSON(http.StatusBadRequest, result.Error) return } c.JSON(http.StatusOK, res)}
结果运行swag init
时提示报错信息:
Error parsing type definition 'database.Post': images: cannot find type definition: pq.StringArray
ParseComment error in file /internal/controller/post.go :database.Post: images: cannot find type definition: pq.StringArray
方式一
单独写一个仅供swagger 解析使用的类型
但是感觉这样会比太好,有没有其他方式可以即保留model的类型生效,又能让swagger 使用的到的方式