2

我正在运行苦艾酒查询,其中包含三个参数字段,它们都是整数列表。

@desc "Fetches resolutions of Taiga ids"
field :taiga_ids, :taiga_entities do
  arg :usIds, list_of(:integer)
  arg :taskIds, list_of(:integer)
  arg :issueIds, list_of(:integer)

  resolve &Resolvers.Bridges.fetch_taiga_ids/3
end

object :taiga_entities do
  field :uss, list_of(:taiga_us)
  field :tasks, list_of(:taiga_task)
  field :issues, list_of(:taiga_issue)
end

我还使用 Insomnia 发送查询并使用结果。据我所知,一切都正确编写,类型得到尊重,参数输入正确。

{
  taigaIds(usIds: [1914], taskIds: [], issueIds: [7489]) {
    uss {
      id
      ref
      subject
    }
    issues {
      id
      ref
      subject
    }
  } 
}

但是我收到以下错误,这没有任何意义。

{
  "errors": [
    {
      "message": "Unknown argument \"usIds\" on field \"taigaIds\" of type \"RootQueryType\".",
      "locations": [
        {
          "line": 2,
          "column": 0
        }
      ]
    },
    {
      "message": "Unknown argument \"taskIds\" on field \"taigaIds\" of type \"RootQueryType\".",
      "locations": [
        {
          "line": 2,
          "column": 0
        }
      ]
    },
    {
      "message": "Unknown argument \"issueIds\" on field \"taigaIds\" of type \"RootQueryType\".",
      "locations": [
        {
          "line": 2,
          "column": 0
        }
      ]
    }
  ]
}

任何想法为什么?

4

1 回答 1

2

按照惯例,字段和参数等模式实体的名称写成camelCase,而 elixer 使用snake_case. absinthe在这两种命名约定之间进行转换。根据文档

这定义了一个适配器,它支持 GraphQL 查询文档的常规(在 JS 中)驼峰式表示法,同时允许使用常规(在 Elixir 中)下划线(蛇形)表示法定义模式,并根据需要转换名称以进行查找、结果和错误信息

...

注意变量是面向客户端的问题(它们可能作为参数提供),因此变量名称应该与查询文档的约定相匹配(例如,camelCase)。

换句话说,像这样定义你的参数:

arg :task_ids, list_of(:integer)

它们将为您转换camelCase为。

于 2019-04-30T20:55:43.850 回答