You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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
    
  • 检查项目依赖与路径

    1. 执行go mod tidy确保项目依赖完整,避免因缺失标准库引用导致解析失败
    2. 确认swag init的路径参数正确,若使用相对路径,去掉开头的斜杠:
      swag init -g cmd/svr/main.go -o ./cmd/svr/docs
      

内容的提问来源于stack exchange,提问作者ROHITH P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:32:03