@@ -8,8 +8,8 @@ are valid.
8
8
TypeSystemDefinition :
9
9
- SchemaDefinition
10
10
- TypeDefinition
11
- - TypeExtension
12
11
- DirectiveDefinition
12
+ - TypeSystemExtension
13
13
14
14
The GraphQL language includes an
15
15
[ IDL] ( https://en.wikipedia.org/wiki/Interface_description_language ) used to
@@ -27,6 +27,18 @@ Note: The type system definition language is used throughout the remainder of
27
27
this specification document when illustrating example type systems.
28
28
29
29
30
+ ## Type System Extensions
31
+
32
+ TypeSystemExtension :
33
+ - SchemaExtension
34
+ - TypeExtension
35
+
36
+ Type system extensions are used to represent a GraphQL type system which has been
37
+ extended from some original type system. For example, this might be used by a
38
+ local service to represent data a GraphQL client only accesses locally, or by a
39
+ GraphQL service which is itself an extension of another GraphQL service.
40
+
41
+
30
42
## Schema
31
43
32
44
SchemaDefinition : schema Directives[ Const] ? { RootOperationTypeDefinition+ }
@@ -139,6 +151,17 @@ type Query {
139
151
}
140
152
```
141
153
154
+ ### Schema Extension
155
+
156
+ SchemaExtension :
157
+ - extend schema Directives[ Const] ? { OperationTypeDefinition+ }
158
+ - extend schema Directives[ Const]
159
+
160
+ Schema extensions are used to represent a schema which has been extended from
161
+ some original schema type. For example, this might be used by a GraphQL service
162
+ which adds additional operation types, or additional directives to an existing
163
+ schema.
164
+
142
165
143
166
## Descriptions
144
167
@@ -261,10 +284,9 @@ TypeExtension :
261
284
- EnumTypeExtension
262
285
- InputObjectTypeExtension
263
286
264
- Type extensions are used to represent a GraphQL type system which has been
265
- extended from some original type system. For example, this might be used by a
266
- local service to represent data a GraphQL client only accesses locally, or by a
267
- GraphQL service which is itself an extension of another GraphQL service.
287
+ Type extensions are used to represent a GraphQL type which has been extended
288
+ from some original type. For example, this might be used by a local service to
289
+ represent additional fields a GraphQL client only accesses locally.
268
290
269
291
270
292
## Scalars
0 commit comments