Warning
Is not tested automatically by the CI anymore. See #121
* This report was auto-generated by graphql-http
- 60 audits in total
- ✅ 39 pass
- 💡 18 notices (suggestions)
⚠️ 3 warnings (optional)
22EB
SHOULD accept application/graphql-response+json and match the content-type4655
MUST accept application/json and match the content-type47DE
SHOULD accept */* and use application/json for the content-type80D8
SHOULD assume application/json content-type when accept is missing82A3
MUST use utf-8 encoding when respondingBF61
MUST accept utf-8 encoded request78D5
MUST assume utf-8 in request if encoding is unspecified2C94
MUST accept POST requests5A70
MAY accept application/x-www-form-urlencoded formatted GET requests9C48
MAY NOT allow executing mutations on GET requests9ABE
MAY respond with 4xx status code if content-type is not supplied on POST requests03D4
MUST accept application/json POST requestsA5BF
MAY use 400 status code when request body is missing on POST423L
MAY use 400 status code on missing {query} parameter34A2
SHOULD allow string {query} parameter when accepting application/graphql-response+json13EE
MUST allow string {query} parameter when accepting application/json8161
SHOULD allow string {operationName} parameter when accepting application/graphql-response+jsonB8B3
MUST allow string {operationName} parameter when accepting application/json94B0
SHOULD allow null {variables} parameter when accepting application/graphql-response+json0220
MUST allow null {variables} parameter when accepting application/json94B1
SHOULD allow null {operationName} parameter when accepting application/graphql-response+json0221
MUST allow null {operationName} parameter when accepting application/json94B2
SHOULD allow null {extensions} parameter when accepting application/graphql-response+json0222
MUST allow null {extensions} parameter when accepting application/json2EA1
SHOULD allow map {variables} parameter when accepting application/graphql-response+json28B9
MUST allow map {variables} parameter when accepting application/jsonD6D5
MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json6A70
MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json428F
SHOULD allow map {extensions} parameter when accepting application/graphql-response+json1B7A
MUST allow map {extensions} parameter when accepting application/jsonB6DC
MAY use 4xx or 5xx status codes on JSON parsing failureBCF8
MAY use 400 status code on JSON parsing failure7B9B
SHOULD use a status code of 200 on variable coercion failure when accepting application/json865D
SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json556A
SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+jsonD586
SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json51FE
SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json74FF
SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json5E5B
SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
LKJ0
MAY use 400 status code on object {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
LKJ1
MAY use 400 status code on number {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
LKJ2
MAY use 400 status code on boolean {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
LKJ3
MAY use 400 status code on array {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
6C00
MAY use 400 status code on object {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
6C01
MAY use 400 status code on number {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
6C02
MAY use 400 status code on boolean {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
6C03
MAY use 400 status code on array {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
4760
MAY use 400 status code on string {variables} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
4761
MAY use 400 status code on number {variables} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
4762
MAY use 400 status code on boolean {variables} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
4763
MAY use 400 status code on array {variables} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
58B0
MAY use 400 status code on string {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
58B1
MAY use 400 status code on number {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
58B2
MAY use 400 status code on boolean {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
58B3
MAY use 400 status code on array {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "65", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Invalid GraphQL request form" } ] } }
8764
MAY use 4xx or 5xx status codes if parameters are invalidResponse status is not between 400 and 599
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "60", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Missing query parameter" } ] } }
3E3A
MAY use 400 status code if parameters are invalidResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "60", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Missing query parameter" } ] } }
572B
SHOULD use 200 status code on document parsing failure when accepting application/jsonResponse status code is not 200
{ "statusText": "Bad Request", "status": 400, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "95", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Operation of this type is not allowed and has been blocked" } ] } }
FDE2
SHOULD use 200 status code on document validation failure when accepting application/jsonResponse status code is not 200
{ "statusText": "Bad Request", "status": 400, "headers": { "date": "", "content-type": "application/json; charset=utf-8", "content-length": "95", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Operation of this type is not allowed and has been blocked" } ] } }
86EE
SHOULD use a status code of 400 on variable coercion failure when accepting application/graphql-response+jsonResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "date": "", "content-type": "application/graphql-response+json; charset=utf-8, application/graphql-response+json", "content-length": "136", "connection": "keep-alive" }, "body": { "errors": [ { "path": [], "message": "Variable \"$id\" is never used in operation \"CoerceFailure\".", "locations": [ { "line": 1, "column": 21 } ] } ] } }