首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将集合传递给带有GraphQL和c#的GraphQL.Net突变?

如何将集合传递给带有GraphQL和c#的GraphQL.Net突变?
EN

Stack Overflow用户
提问于 2019-04-30 07:37:54
回答 1查看 1.2K关注 0票数 1

我在尝试构建一个接受一个集合的变异。GraphQL服务器使用c# .net内核编写,并使用GraphQL.Net。

这是我的输入类型;

代码语言:javascript
复制
public class PupilReportInputType : InputObjectGraphType<PupilReport>
{
    public PupilReportInputType()
    {
        Name = "PupilReportInput";
        Field(pr => pr.PupilId);
        Field(pr => pr.PupilMetricCollections, type: typeof(ListGraphType<PupilMetricCollectionInputType>));
    }
}

使用GraphiQL,我试图发布以下突变;

代码语言:javascript
复制
mutation getPupilReportText($pupilReport: PupilReportInput!) {
  getPupilReportText(pupilReport: $pupilReport)
}

具有以下变量;

代码语言:javascript
复制
{
  "pupilReport": {
    "pupilId" : 5,
    "pupilMetricCollections": {
      "pupilMetricCollection" : {
         "pupilId" : 5
      }
    }
  }
}

我得到的回应是;

代码语言:javascript
复制
{
  "errors": [
    {
      "message": "Variable '$pupilReport.pupilMetricCollections[0]' is invalid. Unable to parse input as a 'PlayerMetricCollectionInput' type. Did you provide a List or Scalar value accidentally?",
      "extensions": {
        "code": "INVALID_VALUE"
      }
    }
  ]
}

如果PupilReportInputType删除了PupilMetricCollections字段,并且对变异变量进行了类似的调整,那么查询的行为就像预期的那样(而不是错误)。类似地,如果我修改变量输入和PupilReportInputType,使字段只是PupilMetricCollectionInputType而不是ListGraphType<PupilMetricCollectionInputType>,那么我就可以让它全部工作。

如何在PupilMetricCollectionInputType上传递集合?我需要某种ListGraphInputType吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 06:53:01

我是graphQL新手,因此我认为我所犯的错误是在我的代码中。事实上,我收到的响应信息给了我所需的所有信息;我发送的可变数据确实是错误的。

我寄了这个;

代码语言:javascript
复制
{
  "pupilReport": {
    "pupilId" : 5,
    "pupilMetricCollections": {
      "pupilMetricCollection" : {
         "pupilId" : 5
      }
    }
  }
}

但是,pupilMetricCollections是数组类型;所以我需要使用数组语法。以下工作正常;

代码语言:javascript
复制
{
  "pupilReport": {
    "pupilId" : 5,
    "pupilMetricCollections": [
      {
        "pupilId" : 1
      },
      {
        "pupilId" : 2
      }
    ]
  }
}

我最大的收获就是相信GraphQL的错误响应,不要忘记寻找显而易见的东西!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55916023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档