我正在使用https://developer.github.com/v4/
我有这样一个巨大的疑问:
query ($login: String!, $first: Int, $after: String) {
user (login: $login){
avatarUrl
login
name,
followers(first: $first, after:$after) {
edges{
cursor
node{
id
name
login
avatarUrl
}
}
totalCount
},
repositories(first: $first) {
edges{
cursor
node{
id
name
}
}
totalCount
}
}
}
但我认为从服务器查询大量数据是不好的。
我有followers
和repositories
页面。因此,我认为将这个巨大的查询拆分为小查询更好。
以下是一些小查询:
追随者查询:
query($login: String!, $first: Int, $after: String) {
user(login: $login) {
followers(first: $first, after: $after) {
edges {
cursor
node {
id
name
login
avatarUrl
}
}
totalCount
}
}
}
存储库查询:
query($login: String!, $first: Int, $after: String) {
user(login: $login) {
repositories(first: $first, after: $after) {
nodes {
id
name
}
totalCount
}
}
}
用户查询:
query($login: String!, $first: Int) {
user(login: $login) {
avatarUrl
login
name
}
}
我说得对吗?有必要这样做吗?在这种情况下最好的做法是什么?有没有任何文件可以教人们如何处理这个问题,或者告诉人们最佳实践?
您可以将查询插入Fragments,这样您仍然只触发一个请求,并且具有较小的"queries"
。类似这样的东西:
追随者片段:
fragment followers on User {
followers(first: $first, after: $after) {
edges{
cursor
node{
id
name
login
avatarUrl
}
}
totalCount
},
}
存储库片段:
fragment repositories on User {
repositories(first: $first) {
edges{
cursor
node{
id
name
}
}
totalCount
}
}
将它们放在一起进行查询:
query ($login: String!, $first: Int, $after: String) {
user (login: $login){
avatarUrl
login
name
...followers
...repositories
}
}