-
Notifications
You must be signed in to change notification settings - Fork 13
Unions
Stanislav Silin edited this page Apr 17, 2023
·
1 revision
Let's suppose that we have the following schema:
schema {
query: Query
}
type TextContent {
text: String!
}
type ImageContent {
imageUrl: String!
height: Int!
}
union PostContent = TextContent | ImageContent
type Query {
posts: [PostContent!]!
}
Here how we can get posts:
var response = await qlClient.Query(static q => q
.Posts(
o => new
{
Image = o.On<ImageContent>().Select(oo => new
{
oo.ImageUrl,
oo.Height
}),
Text = o.On<TextContent>().Select(oo => new
{
oo.Text
}),
}));
Console.WriteLine(JsonSerializer.Serialize(response));
// {
// "Query": "query { posts { ... on ImageContent { imageUrl height } ... on TextContent { text } __typename } }",
// "Data": [
// {
// "Image": {
// "ImageUrl": "http://example.com/image.png",
// "Height": 1920
// }
// },
// {
// "Text": {
// "Text": "Hello World!"
// }
// }
// ]
// }