1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
subgraphs:
connectors:
routing_url: none
schema:
sdl: |
extend schema
@link(url: "https://specs.apollo.dev/federation/v2.8")
@link(
url: "https://specs.apollo.dev/connect/v0.1"
import: ["@connect", "@source"]
)
@source(
name: "jsonPlaceholder"
http: { baseURL: "https://jsonplaceholder.typicode.com/" }
)
type Post {
id: ID!
body: String
title: String
author: User
}
type User {
id: ID!
name: String
username: String
posts: [Post]
@connect(
source: "jsonPlaceholder"
http: { GET: "/users/{$$this.id}/posts" }
selection: """
id
title
body
"""
)
}
type Query {
posts: [Post]
@connect(
source: "jsonPlaceholder"
http: { GET: "/posts" }
selection: """
id
title
body
author: { id: userId }
"""
)
post(id: ID!): Post
@connect(
source: "jsonPlaceholder"
http: { GET: "/posts/{$$args.id}" }
selection: """
id
title
body
author: { id: userId }
"""
entity: true
)
user(id: ID!): User
@connect(
source: "jsonPlaceholder"
http: { GET: "/users/{$$args.id}" }
selection: """
id
name
username
"""
entity: true
)
}