为啥 GraphQl 说我忘记为突变发送参数 [重复]
Posted
技术标签:
【中文标题】为啥 GraphQl 说我忘记为突变发送参数 [重复]【英文标题】:Why GraphQl says that I forgot send args for mutation [duplicate]为什么 GraphQl 说我忘记为突变发送参数 [重复] 【发布时间】:2020-04-21 20:36:15 【问题描述】:我有一个包含几个突变和查询的 graphql 模式。我认为只有在我将 mutation ...
发送到 graphql 服务器时才应该调用突变验证,但目前,服务器说我没有为所有声明的突变发送参数。
type User
id: ID!,
username: String!
type Auth
username: String
password: String
enum Kind
COMPANY
PERSONAL
FREELANCE
OPEN_SOURCE
type Job
kind: Kind!
name: String
link: String
github: String
npm: String
isTool: Boolean
address: String
type Project
year: Int!
description: [String]!
job: Job
name: String
notImportant: Boolean
prefix: String
tags: [String]!
teamSize: String
type Query
projects: [Project!]!
me: User
type Mutation
login(authData: Auth): Boolean
addProject(project: Project): ID!
schema
query: Query
mutation: Mutation
我通过graphql-tools
创建可执行架构:
export const graphqlSchema = makeExecutableSchema(
typeDefs: `*here is that schema*`,
resolvers: mergeResolvers([projectResolvers, authResolvers]) as any,
resolverValidationOptions:
requireResolversForResolveType: false,
requireResolversForArgs: false,
requireResolversForAllFields: false,
,
allowUndefinedInResolve: true,
);
(makeExecutableSchema
它是graphql-tools
包的导出的一部分)
(resolvers
中的数据是不包含Mutation
的对象)
当我使用express-graphql
启动快速服务器并打开graphiql
并输入查询(不是突变)以获取我的项目时,它说我:
我做错了什么? 希望得到您的帮助,谢谢!
【问题讨论】:
【参考方案1】:嘿,我在自己的问题上找到了答案。 GraphQl 告诉我应该在模式中修复什么,但我不理解他。 输入类型(突变的参数应该是输入类型):
input MyInput
foo: String
...
type Mutation
getBar(foo: MyInput): String
【讨论】:
以上是关于为啥 GraphQl 说我忘记为突变发送参数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章