@@ -1943,11 +1943,6 @@ by a validator, executor, or client tool such as a code generator.
1943
1943
1944
1944
GraphQL implementations should provide the `@skip ` and `@include ` directives .
1945
1945
1946
- GraphQL implementations are not required to implement the `@defer ` and `@stream `
1947
- directives . If either or both of these directives are implemented , they must be
1948
- implemented according to this specification . GraphQL implementations that do not
1949
- support these directives must not make them available via introspection .
1950
-
1951
1946
GraphQL implementations that support the type system definition language must
1952
1947
provide the `@deprecated ` directive if representing deprecated portions of the
1953
1948
schema .
@@ -2171,6 +2166,14 @@ scalar UUID @specifiedBy(url: "https://tools.ietf.org/html/rfc4122")
2171
2166
2172
2167
### @defer
2173
2168
2169
+ GraphQL implementations are not required to implement the `@defer ` and `@stream `
2170
+ directives . If either or both of these directives are implemented , they must be
2171
+ implemented according to this specification . GraphQL implementations that do not
2172
+ support these directives must not make them available via introspection . The
2173
+ [Directives Are Defined ](#sec-Directives-Are-Defined) validation rule will
2174
+ prevent GraphQL Operations containing the `@defer` or `@stream` directive from
2175
+ being executed by a GraphQL service that does not implement these directives.
2176
+
2174
2177
```graphql
2175
2178
directive @defer(
2176
2179
label : String
@@ -2182,9 +2185,8 @@ The `@defer` directive may be provided for fragment spreads and inline fragments
2182
2185
to inform the executor to delay the execution of the current fragment to
2183
2186
indicate deprioritization of the current fragment . A query with `@defer `
2184
2187
directive will cause the request to potentially return multiple responses , where
2185
- non -deferred data is delivered in the initial response and data deferred is
2186
- delivered in a subsequent response . `@include ` and `@skip ` take precedence over
2187
- `@defer `.
2188
+ deferred data is delivered in subsequent responses . `@include ` and `@skip ` take
2189
+ precedence over `@defer `.
2188
2190
2189
2191
```graphql example
2190
2192
query myQuery ($shouldDefer : Boolean ) {
@@ -2226,7 +2228,10 @@ directive @stream(
2226
2228
The `@stream ` directive may be provided for a field of `List ` type so that the
2227
2229
backend can leverage technology such as asynchronous iterators to provide a
2228
2230
partial list in the initial response , and additional list items in subsequent
2229
- responses . `@include ` and `@skip ` take precedence over `@stream `.
2231
+ responses . `@include ` and `@skip ` take precedence over `@stream `. The
2232
+ [Stream Directives Are Used On List Fields ](#sec-Stream-Directives-Are-Used-On-List-Fields)
2233
+ validation rule is used to prevent the `@stream` directive from being applied to
2234
+ a field that is not a `List` type.
2230
2235
2231
2236
```graphql example
2232
2237
query myQuery($shouldStream : Boolean ) {
0 commit comments