问题描述
我想知道在graphql查询/突变中定义的数组是否可以通过graphql-codegen转换为严格的数组类型,在有效的graphql实现中可以是单例或元组。这是设计使然吗?
给出以下模式:
schema {
query: Query
}
input CustomFieldFilterInput {
id: ID
value: String
}
type Query {
me: User!
users(ids: [ID],customFields: [CustomFieldFilterInput]): [User]
}
type CustomField {
id: ID
value: String
}
interface Node {
id: ID!
}
type User implements Node {
id: ID!
username: String!
email: String!
customfields: [CustomField]
}
此查询:
query findUserOrUsers($userIds: [ID],$customFields: [CustomFieldFilterInput]) {
users(ids: $userIds,customFields: $customFields) {
...UserFields
}
}
fragment UserFields on User {
id
username
}
export type FindUserOrUsersQueryVariables = Exact<{
userIds?: Maybe<Array<Maybe<Scalars['ID']>>>;
customFields?: Maybe<Array<Maybe<CustomFieldFilterInput>>>;
}>;
但是在我见过的(大多数)graphql实现中,放入数组或单个值是有效的:
query findUseRSString {
users(ids: 123,customFields: { value: "123",id: 123 }) {
...UserFields
}
}
query findUsersArray {
users(ids: [123],customFields: [{ value: "123",id: 123 }]) {
...UserFields
}
}
我想念什么吗?有没有办法覆盖这个?
这是一个小型仓库,复制了“问题”:https://github.com/kweestian/arrays-gql-gen
解决方法
操作中的GraphQL输入支持强制,但代码生成不支持(请参阅:https://github.com/dotansimha/graphql-code-generator/issues/4888) 我们正在努力,希望在以后的版本中予以解决;)