vue.js - 使用 aws AppSync 的 Vue.js 具有 Unknow Type 类型的 GraphQL 验证错误
问题描述
我让这个查询在 AppSync 控制台中完美运行,没有问题:
query listTftTeamCombos {
listTftTeamCombos {
items {
sortId
teamId
}
}
}
但是当我尝试在 Vue.js 的本地 ide 中使用它时,它给了我验证错误:
Validation error of type UnknownType: Unknown type TableTftTeamComboFilterInput
我设法提出了两个查询,但没有一个有效:
export const test1 = /* GraphQL */ `
query ListTftTeamCombos(
$filter: TableTftTeamComboFilterInput
$limit: Int
$nextToken: String
) {
listTftTeamCombos(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
sortId
teamId
}
nextToken
}
}
`;
第二个查询:
export const test2 = /* GraphQL */ `
query ListTftTeamCombos{
items: {
sortId: $sortId
teamId: $teamId
}
}
这是来自 appsync 控制台的原始模式。(在生成长且不可读的 schema.graphql 之前。)
input CreateTftTeamComboInput {
sortId: String!
teamId: String!
}
input DeleteTftTeamComboInput {
sortId: String!
teamId: String!
}
type Mutation {
createTftTeamCombo(input: CreateTftTeamComboInput!): TftTeamCombo
updateTftTeamCombo(input: UpdateTftTeamComboInput!): TftTeamCombo
deleteTftTeamCombo(input: DeleteTftTeamComboInput!): TftTeamCombo
}
type Query {
getTftTeamCombo(teamId: String!, sortId: String!): TftTeamCombo
listTftTeamCombos(filter: TableTftTeamComboFilterInput, limit: Int, nextToken: String): TftTeamComboConnection
}
type Subscription {
onCreateTftTeamCombo(sortId: String, teamId: String): TftTeamCombo
@aws_subscribe(mutations: ["createTftTeamCombo"])
onUpdateTftTeamCombo(sortId: String, teamId: String): TftTeamCombo
@aws_subscribe(mutations: ["updateTftTeamCombo"])
onDeleteTftTeamCombo(sortId: String, teamId: String): TftTeamCombo
@aws_subscribe(mutations: ["deleteTftTeamCombo"])
}
input TableBooleanFilterInput {
ne: Boolean
eq: Boolean
}
input TableFloatFilterInput {
ne: Float
eq: Float
le: Float
lt: Float
ge: Float
gt: Float
contains: Float
notContains: Float
between: [Float]
}
input TableIDFilterInput {
ne: ID
eq: ID
le: ID
lt: ID
ge: ID
gt: ID
contains: ID
notContains: ID
between: [ID]
beginsWith: ID
}
input TableIntFilterInput {
ne: Int
eq: Int
le: Int
lt: Int
ge: Int
gt: Int
contains: Int
notContains: Int
between: [Int]
}
input TableStringFilterInput {
ne: String
eq: String
le: String
lt: String
ge: String
gt: String
contains: String
notContains: String
between: [String]
beginsWith: String
}
input TableTftTeamComboFilterInput {
sortId: TableStringFilterInput
teamId: TableStringFilterInput
}
type TftTeamCombo {
sortId: String!
teamId: String!
}
type TftTeamComboConnection {
items: [TftTeamCombo]
nextToken: String
}
input UpdateTftTeamComboInput {
sortId: String!
teamId: String!
}
文件 schema.json 是使用命令自动生成的amplify add codege
,我没有更改它。
我应该修改 schema.json 以使我的查询正常工作还是在构造查询时犯了错误?
提前致谢。
解决方案
根据您提供的信息,您的 Vue 查询和 GraphQL 架构不匹配,即 TableTftTeamComboFilterInput 未在您的架构中定义。您在 AppSync 中的查询正在运行,因为您没有向它提供任何输入,因此没有验证错误。在此注释中,您的第二个查询应该像这样工作:
export const test2 = /* GraphQL */ `
query listTftTeamCombos {
listTftTeamCombos {
items {
sortId
teamId
}
}
}
我认为您进行查询的方式存在问题。
推荐阅读
- progress-bar - 我正在尝试让 JavaScript 进度条在页面重新加载或会话结束后保留它的进度
- python - 如何在熊猫数据框中搜索元素列表
- flutter - 如何在颤动中访问地图元素并将它们显示为按钮?
- git - 执行“git fetch origin”时出现以下错误
- function - 查询公式错误(从一张表中获取数据,其中一些有缩进)
- python - csrf tken 和访问令牌在 django rest 框架和 react/redux 中的页面刷新后从 cookie 和会话存储中删除
- docker - 添加代理后 Kubectl 命令不起作用
- oauth - 我应该使用什么数据类型来保存 Oauth 提供者返回的唯一用户 ID
- optimization - 如何在 mosek 中限制变量向量的最多一个元素可以是非零的?
- javascript - 如何使用 jQuery 获取单击的表头项的 id