sli*_*wp2 3 graphql graphql-js github-graphql
我正在使用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
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我认为从服务器查询大量数据是不好的。
我有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
}
}
}
Run Code Online (Sandbox Code Playgroud)
存储库查询:
query($login: String!, $first: Int, $after: String) {
user(login: $login) {
repositories(first: $first, after: $after) {
nodes {
id
name
}
totalCount
}
}
}
Run Code Online (Sandbox Code Playgroud)
用户查询:
query($login: String!, $first: Int) {
user(login: $login) {
avatarUrl
login
name
}
}
Run Code Online (Sandbox Code Playgroud)
我说得对吗?有必要这样做吗?这种情况下的最佳做法是什么?是否有任何文档可以教人们如何处理这个问题或告诉人们最佳实践?
您可以将查询吐入片段,这样您仍然只会触发一个请求并拥有更小的"queries". 像这样的东西:
关注者片段:
fragment followers on User {
followers(first: $first, after: $after) {
edges{
cursor
node{
id
name
login
avatarUrl
}
}
totalCount
},
}
Run Code Online (Sandbox Code Playgroud)
存储库片段:
fragment repositories on User {
repositories(first: $first) {
edges{
cursor
node{
id
name
}
}
totalCount
}
}
Run Code Online (Sandbox Code Playgroud)
将它们全部放在查询中:
query ($login: String!, $first: Int, $after: String) {
user (login: $login){
avatarUrl
login
name
...followers
...repositories
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3744 次 |
| 最近记录: |