我可以在 GraphQL 查询中将变量设置为可选吗?
Can I make variables optional in a GraphQL query?
我有一个包含变量 $filter 的查询,它是一个字符串。
此变量仅在用户表示他们想要过滤结果时才相关。如果用户不过滤,我希望返回所有符合条件的结果。
有没有办法在这个查询中省略过滤器变量?我尝试传递 null 但出现错误。
const NOTIFY_NEW_PUBLIC_FEELINGS = gql`
subscription notifyNewPublicFeelings($page_id: uuid!, $filter: String!) {
feelings(
where: { is_public: { _eq: true }, page_id: {_eq: $page_id}, feeling: {_eq: $filter} }
limit: 1
order_by: { created_at: desc }
) {
id
created_at
}
}
`;
问题是您将 $filter 标记为 String!
(!表示不可为空)。因此,传递 null 必然会导致问题。如果将字符串标记为可为空(仅 String
,没有 !
),则可以安全地传递 null
。
我有一个包含变量 $filter 的查询,它是一个字符串。
此变量仅在用户表示他们想要过滤结果时才相关。如果用户不过滤,我希望返回所有符合条件的结果。
有没有办法在这个查询中省略过滤器变量?我尝试传递 null 但出现错误。
const NOTIFY_NEW_PUBLIC_FEELINGS = gql`
subscription notifyNewPublicFeelings($page_id: uuid!, $filter: String!) {
feelings(
where: { is_public: { _eq: true }, page_id: {_eq: $page_id}, feeling: {_eq: $filter} }
limit: 1
order_by: { created_at: desc }
) {
id
created_at
}
}
`;
问题是您将 $filter 标记为 String!
(!表示不可为空)。因此,传递 null 必然会导致问题。如果将字符串标记为可为空(仅 String
,没有 !
),则可以安全地传递 null
。