使用swag init生成swagger.json时paths为空,求排查原因
为什么swagger.json的paths为空?问题出在这几点
1. 接口注释格式不符合解析要求
你给GetAlbums函数加的注释里混入了godoc标识,这会干扰swag的注解解析逻辑——swag只会识别// @xxx开头的标签内容,多余的godoc会让整个接口注解被忽略。
修正后的注释示例:
// GetAlbums // @Summary 获取专辑列表 // @Produce json // @Router /albums [get] func GetAlbums(c *gin.Context) { <some code> }
另外你@Summary里写的“Retrieves user based on given ID”和接口功能不符,虽然不影响生成,但建议改成对应描述,避免文档混乱。
2. 检查swag init的执行路径
必须在项目根目录下执行swag init命令,否则swag无法扫描到main包中的GetAlbums函数,自然生成不了paths内容。
3. 升级swag版本排除兼容性问题
如果使用的是旧版swag,可能存在对Gin框架注解支持的bug,执行以下命令升级到最新版:
go install github.com/swaggo/swag/cmd/swag@latest
调整完以上几点后,重新执行swag init,生成的swagger.json的paths字段就会包含/albums的GET接口定义了。
内容的提问来源于stack exchange,提问作者anton
相关产品推荐
相关产品推荐

