diff --git a/spec/GraphQLOverHTTP.md b/spec/GraphQLOverHTTP.md index 008b8c29..b64cf54a 100644 --- a/spec/GraphQLOverHTTP.md +++ b/spec/GraphQLOverHTTP.md @@ -276,9 +276,10 @@ either omit {operationName} or set it to the empty string. GET requests MUST NOT be used for executing mutation operations. If the values of {query} and {operationName} indicate that a mutation operation is to be -executed, the server MUST respond with error status code `405` (Method Not -Allowed) and halt execution. This restriction is necessary to conform with the -long-established semantics of safe methods within HTTP. +executed, the server MUST respond with an appropriate 4xx or 5xx status code and +halt execution. Using `405` (Method Not Allowed) is RECOMMENDED. This +restriction is necessary to conform with the long-established semantics of safe +methods within HTTP. ### Example @@ -531,8 +532,8 @@ reply with an appropriate `4xx` or `5xx` status code: - If the failure is due to an issue in the request itself, the appropriate `4xx` status code should be used: - - If a mutation is attempted via the `GET` verb, status code `405` MUST be - used. + - If a mutation is attempted via the `GET` verb, status code `405` is + RECOMMENDED. - If an unsupported HTTP method is used, status code `405` is RECOMMENDED. - If the `Content-Type` of the request is not supported, status code `415` is RECOMMENDED.