Skip to content

Commit bb5766e

Browse files
committed
Editorial: Define _response payload_
1 parent d3762d2 commit bb5766e

File tree

2 files changed

+60
-56
lines changed

2 files changed

+60
-56
lines changed

spec/Section 6 -- Execution.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -301,13 +301,13 @@ MapSourceToResponseEvent(sourceStream, subscription, schema, variableValues):
301301

302302
- Let {responseStream} be a new _event stream_.
303303
- When {sourceStream} emits {sourceValue}:
304-
- Let {response} be the result of running
304+
- Let {responsePayload} be the result of running
305305
{ExecuteSubscriptionEvent(subscription, schema, variableValues,
306306
sourceValue)}.
307307
- If internal {error} was raised:
308308
- Cancel {sourceStream}.
309309
- Complete {responseStream} with {error}.
310-
- Otherwise emit {response} on {responseStream}.
310+
- Otherwise emit {responsePayload} on {responseStream}.
311311
- When {sourceStream} completes normally:
312312
- Complete {responseStream} normally.
313313
- When {sourceStream} completes with {error}:
@@ -804,22 +804,22 @@ A _field error_ is an error raised from a particular field during value
804804
resolution or coercion. While these errors should be reported in the response,
805805
they are "handled" by producing a partial response.
806806

807-
Note: This is distinct from a _request error_ which results in a response with
808-
no data.
807+
Note: This is distinct from a _request error_ which results in a _response
808+
payload_ with no {"data"}.
809809

810810
If a field error is raised while resolving a field, it is handled as though the
811811
field returned {null}, and the error must be added to the {"errors"} list in the
812-
response.
812+
_response payload_.
813813

814814
If the result of resolving a field is {null} (either because the function to
815815
resolve the field returned {null} or because a field error was raised), and that
816816
field is of a `Non-Null` type, then a field error is raised. The error must be
817-
added to the {"errors"} list in the response.
817+
added to the {"errors"} list in the _response payload_.
818818

819819
If the field returns {null} because of a field error which has already been
820-
added to the {"errors"} list in the response, the {"errors"} list must not be
821-
further affected. That is, only one error should be added to the errors list per
822-
field.
820+
added to the {"errors"} list in the _response payload_, the {"errors"} list must
821+
not be further affected. That is, only one error should be added to the errors
822+
list per field.
823823

824824
Since `Non-Null` type fields cannot be {null}, field errors are propagated to be
825825
handled by the parent field. If the parent field may be {null} then it resolves
@@ -832,5 +832,5 @@ type is also wrapped in a `Non-Null`, the field error continues to propagate
832832
upwards.
833833

834834
If all fields from the root of the request to the source of the field error
835-
return `Non-Null` types, then the {"data"} entry in the response should be
836-
{null}.
835+
return `Non-Null` types, then the {"data"} entry in the _response payload_
836+
should be {null}.

spec/Section 7 -- Response.md

+49-45
Original file line numberDiff line numberDiff line change
@@ -10,71 +10,75 @@ the case that any _field error_ was raised on a field and was replaced with
1010

1111
## Response Format
1212

13-
A GraphQL request returns either a _response_ or a _response stream_.
13+
:: A GraphQL _response_ is the returned result of a GraphQL _request_. A
14+
_response_ is either a _response payload_ or a _response stream_.
1415

15-
### Response
16+
### Response Payload
1617

17-
:: A GraphQL request returns a _response_ when the GraphQL operation is a query
18-
or mutation. A _response_ must be a map.
18+
:: A GraphQL request returns a _response payload_ when the GraphQL operation is
19+
a query or mutation. When the GraphQL operation is a subscription, the GraphQL
20+
request returns a _response payload_ if a _request error_ is raised. A response
21+
payload must be a map.
1922

20-
If the request raised any errors, the response map must contain an entry with
21-
key `errors`. The value of this entry is described in the "Errors" section. If
22-
the request completed without raising any errors, this entry must not be
23+
If the request raised any errors, the _response payload_ must contain an entry
24+
with key `errors`. The value of this entry is described in the "Errors" section.
25+
If the request completed without raising any errors, this entry must not be
2326
present.
2427

25-
If the request included execution, the response map must contain an entry with
26-
key `data`. The value of this entry is described in the "Data" section. If the
27-
request failed before execution, due to a syntax error, missing information, or
28-
validation error, this entry must not be present.
28+
If the request included execution, the _response payload_ must contain an entry
29+
with key `data`. The value of this entry is described in the "Data" section. If
30+
the request failed before execution, due to a syntax error, missing information,
31+
or validation error, this entry must not be present.
2932

30-
The response map may also contain an entry with key `extensions`. This entry, if
31-
set, must have a map as its value. This entry is reserved for implementers to
32-
extend the protocol however they see fit, and hence there are no additional
33-
restrictions on its contents.
33+
The _response payload_ may also contain an entry with key `extensions`. This
34+
entry, if set, must have a map as its value. This entry is reserved for
35+
implementers to extend the protocol however they see fit, and hence there are no
36+
additional restrictions on its contents.
3437

3538
To ensure future changes to the protocol do not break existing services and
36-
clients, the top level response map must not contain any entries other than the
37-
three described above.
39+
clients, the top level _response payload_ must not contain any entries other
40+
than the three described above.
3841

39-
Note: When `errors` is present in the response, it may be helpful for it to
40-
appear first when serialized to make it more clear when errors are present in a
41-
response during debugging.
42+
Note: When `errors` is present in the _response payload_, it may be helpful for
43+
it to appear first when serialized to make it more clear when errors are present
44+
in a response payload during debugging.
4245

4346
### Response Stream
4447

4548
:: A GraphQL request returns a _response stream_ when the GraphQL operation is a
46-
subscription. A _response stream_ must be a stream of _response_.
49+
subscription and a _request error_ is not raised. A response stream must be a
50+
stream of _response payload_.
4751

4852
### Data
4953

50-
The `data` entry in the response will be the result of the execution of the
51-
requested operation. If the operation was a query, this output will be an object
52-
of the query root operation type; if the operation was a mutation, this output
53-
will be an object of the mutation root operation type.
54+
The `data` entry in the _response payload_ will be the result of the execution
55+
of the requested operation. If the operation was a query, this output will be an
56+
object of the query root operation type; if the operation was a mutation, this
57+
output will be an object of the mutation root operation type.
5458

5559
If an error was raised before execution begins, the `data` entry should not be
56-
present in the response.
60+
present in the _response payload_.
5761

58-
If an error was raised during the execution that prevented a valid response, the
59-
`data` entry in the response should be `null`.
62+
If an error was raised during execution that propagated to the operation root,
63+
the `data` entry in the _response payload_ should be `null`.
6064

6165
### Errors
6266

63-
The `errors` entry in the response is a non-empty list of errors raised during
64-
the _request_, where each error is a map of data described by the error result
65-
format below.
67+
The `errors` entry in the _response payload_ is a non-empty list of errors
68+
raised during the _request_, where each error is a map of data described by the
69+
error result format below.
6670

67-
If present, the `errors` entry in the response must contain at least one error.
68-
If no errors were raised during the request, the `errors` entry must not be
69-
present in the response.
71+
If present, the `errors` entry in the _response payload_ must contain at least
72+
one error. If no errors were raised during the request, the `errors` entry must
73+
not be present in the response payload.
7074

71-
If the `data` entry in the response is not present, the `errors` entry must be
72-
present. It must contain at least one _request error_ indicating why no data was
73-
able to be returned.
75+
If the `data` entry in the _response payload_ is not present, the `errors` entry
76+
must be present. It must contain at least one _request error_ indicating why no
77+
data was able to be returned.
7478

75-
If the `data` entry in the response is present (including if it is the value
76-
{null}), the `errors` entry must be present if and only if one or more _field
77-
error_ was raised during execution.
79+
If the `data` entry in the _response payload_ is present (including if it is the
80+
value {null}), the `errors` entry must be present if and only if one or more
81+
_field error_ was raised during execution.
7882

7983
**Request Errors**
8084

@@ -85,9 +89,9 @@ to determine which operation to execute, or invalid input values for variables.
8589

8690
A request error is typically the fault of the requesting client.
8791

88-
If a request error is raised, the `data` entry in the response must not be
89-
present, the `errors` entry must include the error, and request execution should
90-
be halted.
92+
If a request error is raised, the `data` entry in the _response payload_ must
93+
not be present, the `errors` entry must include the error, and request execution
94+
should be halted.
9195

9296
**Field Errors**
9397

@@ -99,8 +103,8 @@ A field error is typically the fault of a GraphQL service.
99103

100104
If a field error is raised, execution attempts to continue and a partial result
101105
is produced (see [Handling Field Errors](#sec-Handling-Field-Errors)). The
102-
`data` entry in the response must be present. The `errors` entry should include
103-
this error.
106+
`data` entry in the _response payload_ must be present. The `errors` entry
107+
should include this error.
104108

105109
**Error Result Format**
106110

0 commit comments

Comments
 (0)