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

使用Go调用Cyanite.ai GraphQL接口返回422错误排查

问题排查与解决方案

你的422错误源于Go GraphQL客户端的结构体定义不符合联合类型的查询语法要求,导致生成的请求与GraphiQL中正常执行的查询结构不一致。

核心问题:GraphQL标签的错误写法

你当前的结构体中,针对联合类型(LibraryTrackCreateSuccess/LibraryTrackCreateError)的字段标签写法存在两处关键错误:

  • CreatedLibraryTrack的标签只声明了碎片指令,缺少对应的字段名
  • Code和Message的标签将字段名与碎片指令直接拼接,不符合客户端的解析规则

修正后的结构体定义

调整结构体的graphql标签,确保字段名与碎片指令正确关联:

type LibraryTrackCreateMutation struct {
    LibraryTrackCreate struct {
        Typename            string `graphql:"__typename"`
        CreatedLibraryTrack struct {
            ID string `graphql:"id"`
        } `graphql:"createdLibraryTrack ... on LibraryTrackCreateSuccess"`
        Code    string `graphql:"code ... on LibraryTrackCreateError"`
        Message string `graphql:"message ... on LibraryTrackCreateError"`
    } `graphql:"libraryTrackCreate(input: $input)"`
}

关键修正说明:

  1. 给CreatedLibraryTrack字段添加字段名createdLibraryTrack,与GraphQL查询中的字段完全对应
  2. 统一标签格式为"字段名 ... on 类型名",让客户端正确生成带条件碎片的查询语句

额外验证建议

  • 确认uploadId变量的值与上传成功后获取的ID完全一致(注意大小写、无多余空格等细节)
  • 启用GraphQL客户端的日志功能,对比生成的请求与GraphiQL中执行的查询结构是否完全匹配,进一步排查差异

修正后重新执行突变,即可正常将上传的歌曲转为Cyanite库项。

内容的提问来源于stack exchange,提问作者Ruud Op Den Kelder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:22:39