Select * 对于 Github GraphQL 搜索
Select * for Github GraphQL Search
GithubSearch v4 (GraphQL) 相对于 v3 的优势之一是它可以有选择地选择我们想要的字段,而不是总是获取所有字段。但是,我现在面临的问题是如何获取某些字段。
我尝试了联机帮助,但它对我来说更复杂而不是有用。直到现在,我仍然无法找到返回存储库的大小、分数和未解决问题的字段。
这就是为什么我想知道是否有办法将它们全部获取,例如 SQL 中的 Select *
。谢谢。
简短回答:不,设计使然。
GraphQL 旨在让客户端明确定义所需的数据,这导致了 GraphQL 的主要好处之一,即防止过度获取。
从技术上讲,您可以在应用程序中的某处为每种字段类型使用 GraphQL fragments,但如果您不知道要获取哪些字段,它就无济于事。
GraphQL 要求在请求字段时您还请求该字段的选择集(一个或多个属于该字段类型的字段),除非该字段解析为字符串或数字等标量。不幸的是,这意味着 "get all available fields" 没有语法——您总是必须指定希望服务器 return.
的字段
除了仔细阅读文档之外,还有两种其他方法可以让您更好地了解可用的字段。一个是 GraphQL API Explorer,它可以让您实时尝试查询。它只是一个 GraphiQL 界面,这意味着当您编写查询时,您可以通过按 Shift+Space[=22= 来触发自动完成功能] 或 Alt+Space 查看可用字段列表。
如果你想查找特定类型的字段,你也可以直接问 GraphQL :)
query{
__type(name:"Repository") {
fields {
name
description
type {
kind
name
description
}
args {
name
description
type {
kind
name
description
}
defaultValue
}
}
}
}
GithubSearch v4 (GraphQL) 相对于 v3 的优势之一是它可以有选择地选择我们想要的字段,而不是总是获取所有字段。但是,我现在面临的问题是如何获取某些字段。
我尝试了联机帮助,但它对我来说更复杂而不是有用。直到现在,我仍然无法找到返回存储库的大小、分数和未解决问题的字段。
这就是为什么我想知道是否有办法将它们全部获取,例如 SQL 中的 Select *
。谢谢。
简短回答:不,设计使然。
GraphQL 旨在让客户端明确定义所需的数据,这导致了 GraphQL 的主要好处之一,即防止过度获取。
从技术上讲,您可以在应用程序中的某处为每种字段类型使用 GraphQL fragments,但如果您不知道要获取哪些字段,它就无济于事。
GraphQL 要求在请求字段时您还请求该字段的选择集(一个或多个属于该字段类型的字段),除非该字段解析为字符串或数字等标量。不幸的是,这意味着 "get all available fields" 没有语法——您总是必须指定希望服务器 return.
的字段除了仔细阅读文档之外,还有两种其他方法可以让您更好地了解可用的字段。一个是 GraphQL API Explorer,它可以让您实时尝试查询。它只是一个 GraphiQL 界面,这意味着当您编写查询时,您可以通过按 Shift+Space[=22= 来触发自动完成功能] 或 Alt+Space 查看可用字段列表。
如果你想查找特定类型的字段,你也可以直接问 GraphQL :)
query{
__type(name:"Repository") {
fields {
name
description
type {
kind
name
description
}
args {
name
description
type {
kind
name
description
}
defaultValue
}
}
}
}