Skip to content
This repository has been archived by the owner on Jun 27, 2024. It is now read-only.

Latest commit

 

History

History
56 lines (37 loc) · 2.02 KB

http.md

File metadata and controls

56 lines (37 loc) · 2.02 KB

mercurius

Mercurius exhibits the following behaviour when serving GraphQL over HTTP.

HTTP Status Codes

Default behaviour

Mercurius has the following default behaviour for HTTP Status Codes.

Response with data

When a GraphQL response contains data that is defined, the HTTP Status Code is 200 OK.

  • HTTP Status Code: 200 OK
  • Data: !== null
  • Errors: N/A

Invalid input document

When a GraphQL input document is invalid and fails GraphQL validation, the HTTP Status Code is 400 Bad Request.

  • HTTP Status Code: 400 Bad Request
  • Data: null
  • Errors: MER_ERR_GQL_VALIDATION

Response with errors

When a GraphQL response contains errors, the HTTP Status Code is 200 OK as defined in the GraphQL Over HTTP Specification.

  • HTTP Status Code: 200 OK
  • Data: null
  • Errors: Array<GraphQLError> (.length >= 1)

Single error with statusCode property

When a GraphQL response contains a single error with the statusCode property set and no data, the HTTP Status Code is set to this value. See ErrorWithProps for more details.

  • HTTP Status Code: Error statusCode
  • Data: null
  • Errors: Array<GraphQLError> (.length === 1)

Custom behaviour

If you wish to customise the default HTTP Status Code behaviour, one can do this using the errorFormatter option.