Skip to content

Commit 9bdc770

Browse files
committed
Remove dependency on Appendix A
1 parent 6548c54 commit 9bdc770

1 file changed

Lines changed: 13 additions & 19 deletions

File tree

spec/GraphQLOverHTTP.md

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -438,25 +438,19 @@ in the `Accept` HTTP header, the server MUST either:
438438
1. Disregard the `Accept` header and respond with the server's choice of media
439439
type.
440440

441-
If the `Accept` header does not indicate support for one of the server's
442-
preferred media types but does indicate support for `application/json`, to
443-
improve compatibility with _legacy client_ it is RECOMMENDED that the server
444-
either:
445-
446-
1. Respond with the `application/json` media type as detailed in
447-
[Appendix A](#sec-Appendix-application-json-responses); OR
448-
1. Disregard the `Accept` header and respond with the
449-
`application/graphql-response+json` media type.
450-
451-
Note: Responding to such a request with the `application/json` media type only
452-
if it contains non-null {data} (and thus would produce HTTP `2xx` under both
453-
`application/json` and `application/graphql-response+json` media types) allows
454-
for richer status codes for unsuccessful requests whilst maximizing
455-
compatibility with _legacy client_ for successful and partially successful
456-
requests. A response with the `application/json` media type could originate from
457-
non-GraphQL intermediary servers and middlewares handling failures (HTTP `4xx`
458-
and `5xx`), so clients can typically only rely on an `application/json` response
459-
to be from GraphQL when it uses HTTP `2xx` status code.
441+
To improve compatibility with _legacy client_, if the `Accept` header does not
442+
indicate support for one of the server's preferred media types but does indicate
443+
support for `application/json`, it is RECOMMENDED to perform the request as if
444+
it had `Accept: application/graphql-response+json` but use
445+
`Content-Type: application/json` for any response with a `2xx` status code.
446+
447+
Note: This recommendation uses this specification's full range of HTTP status
448+
codes whilst maximizing compatibility with _legacy client_ for successful and
449+
partially successful requests. HTTP responses could originate from non-GraphQL
450+
intermediary servers and middlewares handling failures (HTTP `4xx` and `5xx`),
451+
so clients typically can only rely on a response to be from GraphQL either when
452+
it is successful (HTTP `2xx`) or when it explicitly declares it is a GraphQL
453+
response (`Content-Type: application/graphql-response+json`).
460454

461455
If the `Accept` header is present but indicates support for neither any of the
462456
server's supported media types nor `application/json`, it is RECOMMENDED to

0 commit comments

Comments
 (0)