7

Github Search v4 (GraphQL) 相对于 v3 的优势之一是它可以选择性地选择我们想要的字段,而不是总是获取所有字段。但是,我现在面临的问题是如何获取某些字段。

我尝试了在线帮助,但它对我来说更多的是卷积而不是帮助。到目前为止,我仍然无法找到返回的存储库的大小、分数和未解决问题的字段。

这就是为什么我想知道是否有办法让它们全部获得,就像Select *在 SQL 中一样。谢谢。

4

2 回答 2

12

GraphQL 要求在请求字段时,您还请求该字段的选择集(一个或多个属于该字段类型的字段),除非该字段解析为字符串或数字等标量。这意味着不幸的是,没有“获取所有可用字段”的语法——您总是必须指定您希望服务器返回的字段。

除了阅读文档之外,还有另外两种方法可以让您更好地了解可用字段。一个是GraphQL API Explorer,它可以让你实时尝试查询。它只是一个 GraphiQL 界面,这意味着当您编写查询时,您可以通过按Shift+SpaceAlt+Space来触发自动完成功能以查看可用字段的列表。

如果您想查找特定类型的字段,您也可以询问 GraphQL :)

query{
  __type(name:"Repository") {
    fields {
      name
      description
      type {
        kind
        name
        description
      }
      args {
        name
        description
        type {
          kind
          name
          description
        }
        defaultValue
      }
    }
  }
}
于 2018-03-18T15:45:51.253 回答
4

简短的回答:不,设计使然。

GraphQL 旨在让客户端明确定义所需的数据,从而带来 GraphQL 的主要优点之一,即防止过度获取。

从技术上讲,您可以在应用程序中的某处为每种字段类型使用GraphQL 片段,但如果您不知道要尝试获取哪些字段,它对您没有帮助。

于 2018-03-18T15:45:04.773 回答