使用swaggo生成Go接口文档时遇time.Duration类型解析错误
Swaggo对time.Duration类型的支持问题及解决办法
Swaggo本身支持time.Duration类型,你遇到的「无法找到time.Duration类型定义」错误,并非工具不支持该类型,而是解析过程中出现了识别问题,常见原因和解决方法如下:
显式声明字段类型格式
在包含time.Duration的结构体字段上,通过Swag注释或标签明确指定类型格式,帮助工具正确解析:type APIResponse struct { // 请求超时时间 // @JsonSchema(type="string", format="duration") Timeout time.Duration `json:"timeout"` }或者使用swagger标签:
type APIResponse struct { Timeout time.Duration `json:"timeout" swagger:"string,format=duration"` }升级swag工具版本
旧版本的swag可能存在标准库类型解析的bug,执行以下命令升级到最新稳定版:go install github.com/swaggo/swag/cmd/swag@latest检查项目依赖与路径
- 执行
go mod tidy确保项目依赖完整,避免因缺失标准库引用导致解析失败 - 确认
swag init的路径参数正确,若使用相对路径,去掉开头的斜杠:swag init -g cmd/svr/main.go -o ./cmd/svr/docs
- 执行
内容的提问来源于stack exchange,提问作者ROHITH P
相关产品推荐
相关产品推荐

