【问题标题】:Select * for Github GraphQL Search为 Github GraphQL 搜索选择 *
【发布时间】:2018-08-27 03:34:30
【问题描述】:

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

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

这就是为什么我想知道是否有办法将它们全部获取,例如 SQL 中的Select *。谢谢。

【问题讨论】:

标签: github field graphql github-api github-graphql


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    query{
      __type(name:"Repository") {
        fields {
          name
          description
          type {
            kind
            name
            description
          }
          args {
            name
            description
            type {
              kind
              name
              description
            }
            defaultValue
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-05
      • 2018-08-26
      • 2021-12-30
      • 1970-01-01
      • 2018-01-05
      • 2019-03-25
      • 2018-04-24
      • 2020-04-30
      相关资源
      最近更新 更多