选择*进行Github GraphQL搜索

xpt*_*xpt 2 field github github-api graphql github-graphql

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

我尝试了在线帮助,但对我而言,它比帮助大得多。到现在为止,我仍然找不到返回的存储库的大小,得分和未解决问题的字段。

这就是为什么我想知道是否有一种方法可以像Select *在SQL中那样全部获取它们。谢谢。

Ste*_*ell 7

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

GraphQL 的设计目的是让客户端显式定义所需的数据,从而实现 GraphQL 的主要好处之一,即防止过度获取。

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


Dan*_*den 5

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
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)