以高效的方式使用 GraphQL 获取 GitHub 登录(用户)列表的状态数据
Get status data for list of GitHub logins (users) using GraphQL in efficent way
我想做的是从 Status 获取组织中 10-40 GitHub 名用户的特定数据。我想批量获取数据。目前,我的解决方案在代码中使用 for 循环查询数据,查询如下:
{
user(login: "user1") {
status {
indicatesLimitedAvailability
updatedAt
createdAt
}
此解决方案的缺点是我必须使用 sleep 来触发 API 每分钟调用限制 GitHub。
是否可以将查询转换为如下形式(伪代码):
{
user(login: "user1", "user2", "user3", ...) {
status {
indicatesLimitedAvailability
updatedAt
createdAt
}
以及响应中的某种列表?
您可以使用以下查询:
{
nodes(ids: ["node_id1", "node_id2"]) {
... on User {
status {
indicatesLimitedAvailability
updatedAt
createdAt
}
}
}
}
其中 node_id
是您要查询的 id
用户。
您可以使用以下查询获取这些:
{
user(login: "username") {
id
}
}
或者您可以使用以下查询获取组织中的所有成员
{
organization(login: "org_name") {
membersWithRole(first: 100) {
nodes {
login
id
}
}
}
}
我想做的是从 Status 获取组织中 10-40 GitHub 名用户的特定数据。我想批量获取数据。目前,我的解决方案在代码中使用 for 循环查询数据,查询如下:
{
user(login: "user1") {
status {
indicatesLimitedAvailability
updatedAt
createdAt
}
此解决方案的缺点是我必须使用 sleep 来触发 API 每分钟调用限制 GitHub。
是否可以将查询转换为如下形式(伪代码):
{
user(login: "user1", "user2", "user3", ...) {
status {
indicatesLimitedAvailability
updatedAt
createdAt
}
以及响应中的某种列表?
您可以使用以下查询:
{
nodes(ids: ["node_id1", "node_id2"]) {
... on User {
status {
indicatesLimitedAvailability
updatedAt
createdAt
}
}
}
}
其中 node_id
是您要查询的 id
用户。
您可以使用以下查询获取这些:
{
user(login: "username") {
id
}
}
或者您可以使用以下查询获取组织中的所有成员
{
organization(login: "org_name") {
membersWithRole(first: 100) {
nodes {
login
id
}
}
}
}