【问题标题】:Understanding GraphQl query理解 GraphQl 查询
【发布时间】:2019-07-29 19:04:59
【问题描述】:

我正在努力学习和理解 GraphQl。

为了这样做,我去了apollo-graphQL blog and started with getting started launch

从他们的博客中,在我们的 schema.js 文件中,考虑我们有类似的东西
onst { gql } = require('apollo-server');
const typeDefs = gql`

type Query {
  launches: [Launch]!
  launch(id: ID!): Launch
  me: User
}

type Launch {
  id: ID!
  site: String
  mission: Mission
  rocket: Rocket
  isBooked: Boolean!
}
module.exports = typeDefs;

现在在我们可以查询的工具中(如 graphiqL),在他们的示例中,他们在查询中做了类似的事情

{
  launch(id: 1) {
    site
  }
}

我不确定 - 关于我们的 site 在上面的 graphiqL 对象中的位置以及我们如何编写它(因为在我们的查询中,如果 Launch 并且只想要 id launch(id: ID!): Launch,则启动期望返回类型)

为什么这个查询无效

{
  launch(id: 1) 
}

【问题讨论】:

    标签: node.js graphql apollo-server


    【解决方案1】:

    您需要为复杂类型指定字段。对于您的示例(“并且只想要 id”)。

    {
      launch(id: 1) {
        id
      }
    }
    

    (id: 1) 中的内容是查询的输入(就像函数的参数)。但是您仍然必须指定要返回的内容。

    UPD。需要明确的是,同样的规则也适用于嵌套的复杂类型。例如,如果您也想获得发射火箭,您不能简单地这样做

    {
      launch(id: 1) {
        id
        rocket # does not work
      }
    }
    

    你需要指定你想要的火箭场

    {
      launch(id: 1) {
        id
        rocket {
          id
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-09-23
      • 2017-01-15
      • 2019-10-14
      • 2020-03-15
      • 2020-01-04
      • 2020-11-13
      • 1970-01-01
      • 2020-11-16
      • 2019-06-27
      相关资源
      最近更新 更多