* This report was auto-generated by graphql-http
- 79 audits in total
- ✅ 35 pass
⚠️ 44 warnings (optional)
- MUST accept application/json and match the content-type
- SHOULD accept */* and use application/json for the content-type
- SHOULD assume application/json content-type when accept is missing
- MUST use utf-8 encoding when responding
- MUST accept utf-8 encoded request
- MUST assume utf-8 in request if encoding is unspecified
- MUST accept POST requests
- MAY accept application/x-www-form-urlencoded formatted GET requests
- MAY NOT allow executing mutations on GET requests
- SHOULD respond with 4xx status code if content-type is not supplied on POST requests
- MUST accept application/json POST requests
- MUST require a request body on POST
- SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
- SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
- SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
- SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
- SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
- MUST allow string {query} parameter when accepting application/json
- SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
- SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
- SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
- SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
- MUST allow string {operationName} parameter when accepting application/json
- MUST allow null {variables} parameter when accepting application/json
- MUST allow null {operationName} parameter when accepting application/json
- MUST allow null {extensions} parameter when accepting application/json
- MUST allow map {variables} parameter when accepting application/json
- MUST allow map {extensions} parameter when accepting application/json
- SHOULD use 200 status code if parameters are invalid when accepting application/json
- SHOULD use 200 status code on document parsing failure when accepting application/json
- SHOULD use 200 status code on document validation failure when accepting application/json
- SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json
- SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json
- SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json
- SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json
The server SHOULD support these, but is not required.
-
SHOULD accept application/graphql-response+json and match the content-type
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD allow string {query} parameter when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD allow string {operationName} parameter when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD allow null {variables} parameter when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD allow null {operationName} parameter when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD allow null {extensions} parameter when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200
{ "statusText": "Bad Request", "status": 400, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "42", "content-encoding": "gzip" }, "body": "Malformed Request Body" }
-
SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response status code is not 200
{ "statusText": "Bad Request", "status": 400, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "42", "content-encoding": "gzip" }, "body": "Malformed Request Body" }
-
SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response status code is not 200
{ "statusText": "Bad Request", "status": 400, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "42", "content-encoding": "gzip" }, "body": "Malformed Request Body" }
-
SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
Response body execution result does not have a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": null }
-
SHOULD allow map {variables} parameter when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
Response body execution result has a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "application/json", "content-length": "163", "content-encoding": "gzip" }, "body": null }
-
SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
Response body execution result does not have a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": null }
-
SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
Response body execution result does not have a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": null }
-
SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
Response body execution result does not have a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": null }
-
SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
Response body execution result does not have a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": null }
-
SHOULD allow map {extensions} parameter when accepting application/graphql-response+json
Response status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200
{ "statusText": "Bad Request", "status": 400, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "42", "content-encoding": "gzip" }, "body": "Malformed Request Body" }
-
SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD not contain the data entry on JSON parsing failure when accepting application/graphql-response+json
Response body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }
-
SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json
Response body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }
-
SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json
Response body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }
-
SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json
Response status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
-
SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
Response body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "<timestamp>", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }