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

使用Gqlgen时,如何在GraphQL SDL中生成*[]string类型结构体字段?

解决gqlgen生成GraphQL API时指针切片字段不匹配的问题

方法1:通过gqlgen.yml配置模型映射

在项目的gqlgen.yml配置文件中,添加模型字段的类型映射,明确指定GraphQL字段对应的Go指针切片类型:

models:
  Pets:
    fields:
      multiEan:
        type: "*[]string"

保存配置后,重新执行生成命令:

go run github.com/99designs/gqlgen generate

方法2:复用自定义结构体绑定

如果已经定义好目标Pets结构体,可让gqlgen直接复用该结构体,避免自动生成不符合要求的代码:

  1. 确保结构体字段与GraphQL字段名一致(字段名不同时可添加gqlgen标签映射):
type Pets struct {
    multiEan *[]string // 字段名与SDL中multiEan一致时无需额外标签
}
  1. 修改gqlgen.yml,将结构体所在的包路径加入autobind列表:
autobind:
  - "github.com/your/project/package" # 替换为结构体实际所在的包路径
  1. 重新执行生成命令即可。

方法3:在SDL中使用@goField指令

直接在GraphQL SDL的字段上通过@goField指令指定对应的Go类型:

type Pets {
    multiEan: [String!] @goField(type: "*[]string")
}

执行生成命令后,gqlgen会按照指定类型生成指针切片字段。

内容的提问来源于stack exchange,提问作者Andres Fernando Baron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:10:24