Kie*_*era 5 apollo graphql-js apollo-server
我正在使用 apollo graphql 服务器。我有一个查询,无序运行良好。
query feedQuery {
allPostsFromAllBlogs
{
id
blogId
title
text
likes
createdAt
}
}
Run Code Online (Sandbox Code Playgroud)
我想对结果进行排序(类型为 [Post])。这是我用来执行此操作的查询:
query feedQuery {
allPostsFromAllBlogs( orderBy: {field: createdAt, direction:DESC})
{
id
blogId
title
text
likes
createdAt
}
}
Run Code Online (Sandbox Code Playgroud)
在graphiql中产生这个输出:
{
"errors": [
{
"message": "Unknown argument \"orderBy\" on field \"allPostsFromAllBlogs\" of type \"Query\".",
"locations": [
{
"line": 2,
"column": 25
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是架构:
scalar DateTime
type Query {
blogInfo(id: String): Blog
post(id: String): Post
topPost(blogId: String): Post
allPosts(blogId: String): [Post]
allPostsFromAllBlogs: [Post]
topPostFromAllBlogs: [BlogWithPost]
comments(postId: String): Comments
allBlogs: [Blog]
}
type Mutation {
createPost(title: String,
content: String,
type: String,
blogId: String,
avatar: String): Post
}
type Blog {
id: String
title: String
description: String
authorName: String
avatar: String
}
type Post {
id: String
blogId: String
title: String
content: String
likes: Int
avatar: String
createdAt: DateTime
type: String
}
type BlogWithPost {
id: String
title: String
description: String
authorName: String
avatar: String
post: Post
}
type Comment {
commenterId: String
text: String
}
type Comments {
postId: String
comments: [Comment]
}
Run Code Online (Sandbox Code Playgroud)
我不确定诊断问题还需要哪些其他信息,但我认为这是一个查询语法错误。
为什么不识别orderBy?是否有不同或更好的方法来对结果进行排序?
问题是因为allPostsFromAllBlogs没有任何输入类型(即过滤器)。从架构中可以看出:
type Query {
...
allPosts(blogId: String): [Post]
allPostsFromAllBlogs: [Post]
...
}
Run Code Online (Sandbox Code Playgroud)
该字段allPosts具有输入类型blogId: String,但该字段allPostsFromAllBlogs未实现任何输入类型。
您必须将该字段更改allPostsFromAllBlogs为以下内容:
type Query {
...
allPosts(blogId: String): [Post]
allPostsFromAllBlogs(orderBy: yourInputTypeDefinition): [Post]
...
}
Run Code Online (Sandbox Code Playgroud)
并且您必须更改该字段的解析器。
| 归档时间: |
|
| 查看次数: |
5447 次 |
| 最近记录: |