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)
22EBSHOULD accept application/graphql-response+json and match the content-type4655MUST accept application/json and match the content-type47DESHOULD accept */* and use application/json for the content-type80D8SHOULD assume application/json content-type when accept is missing82A3MUST use utf-8 encoding when respondingBF61MUST accept utf-8 encoded request78D5MUST assume utf-8 in request if encoding is unspecified2C94MUST accept POST requests5A70MAY accept application/x-www-form-urlencoded formatted GET requests9C48MAY NOT allow executing mutations on GET requests9ABEMAY respond with 4xx status code if content-type is not supplied on POST requests03D4MUST accept application/json POST requestsA5BFMAY use 400 status code when request body is missing on POST423LMAY use 400 status code on missing {query} parameter34A2SHOULD allow string {query} parameter when accepting application/graphql-response+json13EEMUST allow string {query} parameter when accepting application/json8161SHOULD allow string {operationName} parameter when accepting application/graphql-response+jsonB8B3MUST allow string {operationName} parameter when accepting application/json94B0SHOULD allow null {variables} parameter when accepting application/graphql-response+json0220MUST allow null {variables} parameter when accepting application/json94B1SHOULD allow null {operationName} parameter when accepting application/graphql-response+json0221MUST allow null {operationName} parameter when accepting application/json94B2SHOULD allow null {extensions} parameter when accepting application/graphql-response+json0222MUST allow null {extensions} parameter when accepting application/json2EA1SHOULD allow map {variables} parameter when accepting application/graphql-response+json28B9MUST allow map {variables} parameter when accepting application/jsonD6D5MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json6A70MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json428FSHOULD allow map {extensions} parameter when accepting application/graphql-response+json1B7AMUST allow map {extensions} parameter when accepting application/jsonB6DCMAY use 4xx or 5xx status codes on JSON parsing failureBCF8MAY use 400 status code on JSON parsing failure7B9BSHOULD use a status code of 200 on variable coercion failure when accepting application/json865DSHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json556ASHOULD use 400 status code on document parsing failure when accepting application/graphql-response+jsonD586SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json51FESHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json74FFSHOULD use 400 status code on document validation failure when accepting application/graphql-response+json5E5BSHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
LKJ0MAY 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" } ] } }LKJ1MAY 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" } ] } }LKJ2MAY 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" } ] } }LKJ3MAY 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" } ] } }6C00MAY 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" } ] } }6C01MAY 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" } ] } }6C02MAY 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" } ] } }6C03MAY 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" } ] } }4760MAY 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" } ] } }4761MAY 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" } ] } }4762MAY 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" } ] } }4763MAY 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" } ] } }58B0MAY 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" } ] } }58B1MAY 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" } ] } }58B2MAY 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" } ] } }58B3MAY 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" } ] } }8764MAY 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" } ] } }3E3AMAY 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" } ] } }
572BSHOULD 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" } ] } }FDE2SHOULD 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" } ] } }86EESHOULD 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 } ] } ] } }