* This report was auto-generated by graphql-http
- 60 audits in total
- ✅ 29 pass
- 💡 18 notices (suggestions)
⚠️ 13 warnings (optional)
4655
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 POST13EE
MUST allow string {query} parameter when accepting application/jsonB8B3
MUST allow string {operationName} parameter when accepting application/json0220
MUST allow null {variables} parameter when accepting application/json0221
MUST allow null {operationName} parameter when accepting application/json0222
MUST allow null {extensions} parameter when accepting application/json4760
MAY use 400 status code on string {variables} parameter4761
MAY use 400 status code on number {variables} parameter4762
MAY use 400 status code on boolean {variables} parameter28B9
MUST allow map {variables} parameter when accepting application/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 failure572B
SHOULD use 200 status code on document parsing failure when accepting application/jsonFDE2
SHOULD use 200 status code on document validation failure when accepting application/json7B9B
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+json51FE
SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json
423L
MAY use 400 status code on missing {query} parameterResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
LKJ0
MAY use 400 status code on object {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }
LKJ1
MAY use 400 status code on number {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }
LKJ2
MAY use 400 status code on boolean {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }
LKJ3
MAY use 400 status code on array {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }
6C00
MAY use 400 status code on object {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "105", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"[object Object]\"." } ] } }
6C01
MAY use 400 status code on number {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "95", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"0\"." } ] } }
6C02
MAY use 400 status code on boolean {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "98", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"false\"." } ] } }
6C03
MAY use 400 status code on array {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "98", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"array\"." } ] } }
4763
MAY use 400 status code on array {variables} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }
D6D5
MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
6A70
MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/jsonResponse body execution result has a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "163", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Variable \"$name\" of required type \"String!\" was not provided.", "locations": [ { "line": 1, "column": 12 } ] } ] } }
58B0
MAY use 400 status code on string {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }
58B1
MAY use 400 status code on number {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }
58B2
MAY use 400 status code on boolean {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }
58B3
MAY use 400 status code on array {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }
8764
MAY use 4xx or 5xx status codes if parameters are invalidResponse status is not between 400 and 599
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }
3E3A
MAY use 400 status code if parameters are invalidResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }
22EB
SHOULD accept application/graphql-response+json and match the content-typeResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
34A2
SHOULD allow string {query} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
8161
SHOULD allow string {operationName} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
94B0
SHOULD allow null {variables} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
94B1
SHOULD allow null {operationName} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
94B2
SHOULD allow null {extensions} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
2EA1
SHOULD allow map {variables} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
428F
SHOULD allow map {extensions} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
556A
SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+jsonResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
D586
SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+jsonResponse body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }
74FF
SHOULD use 400 status code on document validation failure when accepting application/graphql-response+jsonResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }
5E5B
SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+jsonResponse body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }
86EE
SHOULD use a status code of 400 on variable coercion failure when accepting application/graphql-response+jsonResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }