graphql 查询的实体关联语法问题
Entity Association syntax issue with graphql queries
我想了解 graphql 的查询和变异语法。给出这个例子:
type Author {
id: Int!
firstName: String
lastName: String
posts: [Post]
}
type Post {
id: Int!
title: String
author: Author
votes: Int
}
type Query {
posts: [Post]
author(id: Int!): Author
}
将 post 与作者相关联的查询应该是什么样的?这是连接发挥作用的地方还是其他原因?这是我试图解决问题但有用的尝试。
mutation createAuthor {
createAuthor(input: {
id: 123
firstName: "Bob"
lastName: "Smith"
}) {
id
firstName
lastName
}
}
query listAuthors {
listAuthors {
items {
id
firstName
lastName
}
}
}
mutation createPost {
createPost(input: {
id: 12345
title: "Title"
votes: 345
author: {
lastName: {
contains: "Bob"
}
}
}) {
id
title
votes
author {
id
firstName
lastName
}
}
}
如有任何帮助,我们将不胜感激。我的目标是查询作者和 return 所有与该作者关联的 post,并创建一个 Post 突变,为作者添加 post。
一个问题有 2 个问题,所以我会按问题的顺序回答。
1. return 与作者相关联的所有 post
您的架构看起来是正确的。查询看起来像:
query {
author(id: 1) {
id
posts {
id
title
}
}
}
2。创建 Post 并附加到作者
在你的例子中,如果你想公开一个接口来创建一个Post,那么你必须在你的模式中公开一个突变字段
例如:
type Mutation {
createPost(input: CreatePostInput): Post
}
如果您想在创建 post 的同时将其附加到作者,那么您可以添加 authorId
作为输入的一部分,这里我们只想附加Post 给现有作者:
input CreatePostInput {
title: String
authorId: ID!
votes: Int
}
当然这只是接口定义。我们需要实际创建 Post 和 link 它给解析器内部的作者。
突变查询如下所示:
mutation createPost {
createPost(input: {
title: "Title"
votes: 345
authorId: "authorId1"
}) {
id
title
votes
author {
id
firstName
lastName
}
}
}
希望对您有所帮助!
我想了解 graphql 的查询和变异语法。给出这个例子:
type Author {
id: Int!
firstName: String
lastName: String
posts: [Post]
}
type Post {
id: Int!
title: String
author: Author
votes: Int
}
type Query {
posts: [Post]
author(id: Int!): Author
}
将 post 与作者相关联的查询应该是什么样的?这是连接发挥作用的地方还是其他原因?这是我试图解决问题但有用的尝试。
mutation createAuthor {
createAuthor(input: {
id: 123
firstName: "Bob"
lastName: "Smith"
}) {
id
firstName
lastName
}
}
query listAuthors {
listAuthors {
items {
id
firstName
lastName
}
}
}
mutation createPost {
createPost(input: {
id: 12345
title: "Title"
votes: 345
author: {
lastName: {
contains: "Bob"
}
}
}) {
id
title
votes
author {
id
firstName
lastName
}
}
}
如有任何帮助,我们将不胜感激。我的目标是查询作者和 return 所有与该作者关联的 post,并创建一个 Post 突变,为作者添加 post。
一个问题有 2 个问题,所以我会按问题的顺序回答。
1. return 与作者相关联的所有 post
您的架构看起来是正确的。查询看起来像:
query {
author(id: 1) {
id
posts {
id
title
}
}
}
2。创建 Post 并附加到作者
在你的例子中,如果你想公开一个接口来创建一个Post,那么你必须在你的模式中公开一个突变字段
例如:
type Mutation {
createPost(input: CreatePostInput): Post
}
如果您想在创建 post 的同时将其附加到作者,那么您可以添加 authorId
作为输入的一部分,这里我们只想附加Post 给现有作者:
input CreatePostInput {
title: String
authorId: ID!
votes: Int
}
当然这只是接口定义。我们需要实际创建 Post 和 link 它给解析器内部的作者。
突变查询如下所示:
mutation createPost {
createPost(input: {
title: "Title"
votes: 345
authorId: "authorId1"
}) {
id
title
votes
author {
id
firstName
lastName
}
}
}
希望对您有所帮助!