【问题标题】:Graphql queries works fine on AppSync Console but throw errors on client sideGraphql 查询在 AppSync 控制台上运行良好,但在客户端抛出错误
【发布时间】:2020-12-11 01:40:33
【问题描述】:

我的架构和查询在放大控制台上运行良好,但在客户端引发类型不匹配错误。仅当返回的对象中有多个记录时才会发生这种情况

只有一条记录时数据成功返回

对象包含多条记录时出错

架构:

type Member {
    Id: ID
    PartyId: String
    Status: MemberStatus
    PersonName: MemberName
    Email: String
    UniformId: String
    Name: String
}

type MemberName {
    FirstName: String
    LastName: String
    FullName: String
    InformalName: String
}

type MemberStatus {
    PartyStatusId: String
    Name: String
    Description: String
    ActiveStatus: Int
}

type Query {
    listMembers(id: ID, firstName: String, lastName: String): [Member]
}

我在前端的查询

// Single Record 
const [isLoading, state, error] = useGraphql(queries.listMembers, {
    firstName: "BlaBle",
    lastName: "Blu",
})

// Multiple Records
const [isLoading, state, error] = useGraphql(queries.listMembers, {
    firstName: "blee",
})

解析器

我在这里遗漏了什么或做错了什么吗?如果需要更多信息,请告诉我。

谢谢!

【问题讨论】:

  • 请问您使用的是什么类型的数据库以及您的解析器是什么样的?
  • 它连接到一个 lambda 作为数据源,并且该 lambda 向第三方 api 发出 http 请求。让我快速编辑帖子以包含解析器
  • 感谢分享。同样的事情在控制台上工作但在客户端上却没有,这真的很奇怪。必须尝试将响应模板更改为 $ctx.result.body
  • 我知道!因为这个,我的头发几乎掉光了。我没试过,我会这样做,看看结果如何。
  • 另外,我会仔细检查 Lambda 函数返回的数据及其结构。

标签: reactjs graphql aws-amplify aws-appsync


【解决方案1】:

如果有人想知道,我能够解决这个问题,因为 lambda 数据源没有针对空参数的防护。一旦修复,数据就会按预期开始流动。谢谢,Myz。

【讨论】:

    猜你喜欢
    • 2021-07-17
    • 2022-11-30
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2019-01-27
    • 2020-05-02
    相关资源
    最近更新 更多