如何处理返回布尔值的 GraphQL 查询?

Cha*_*lor 7 graphql apollo-client

需要检查电子邮件是否可用或在用户注册过程中被占用。目标是使用 GraphQL 快速查询 API 服务器,并让它告诉我们电子邮件是否可用或已被占用。

使用 GraphQL 的简单布尔类型情况的一般最佳实践是什么?

以下是我的想法,但我不确定这是否是一个好的做法,并希望听到有关此类查询的更好做法的反馈。

要求:

query {
  emailExists(email:"jane@doe.com") {
    is
  }
}
Run Code Online (Sandbox Code Playgroud)

回复:

{
  "data": {
    "emailExists": {
      "is": true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*den 18

“查询”只是一个关于碰巧是什么Query类型的字段。一个字段可以返回任何输出类型,包括标量——它不需要返回一个对象。所以有一个像这样的模式就足够了:

type Query {
  emailExists(email: String!): Boolean!
}
Run Code Online (Sandbox Code Playgroud)

首选对象类型的唯一原因是,如果您预计将来要添加其他字段(即当前is字段以外的其他字段)。

  • 仅作为记录,使用此解决方案,请求将是这样的(不需要选择字段): ```graphql query { emailExists(email:"jane@doe.com") } ``` (4认同)