diff --git a/docs/interfaces/audits_common.Audit.md b/docs/interfaces/audits_common.Audit.md index abbcbe9d..002879a2 100644 --- a/docs/interfaces/audits_common.Audit.md +++ b/docs/interfaces/audits_common.Audit.md @@ -13,6 +13,7 @@ The test function will throw only if the error is fatal. ### Properties - [fn](audits_common.Audit.md#fn) +- [id](audits_common.Audit.md#id) - [name](audits_common.Audit.md#name) ## Properties @@ -31,6 +32,15 @@ The test function will throw only if the error is fatal. ___ +### id + +• **id**: `string` + +Uniquely represents the audit. Helps with pinning audits +without depending on the human readable audit name. + +___ + ### name • **name**: \`MUST ${string}\` \| \`SHOULD ${string}\` \| \`MAY ${string}\` diff --git a/docs/interfaces/audits_common.AuditFail.md b/docs/interfaces/audits_common.AuditFail.md index 0824862e..34af9839 100644 --- a/docs/interfaces/audits_common.AuditFail.md +++ b/docs/interfaces/audits_common.AuditFail.md @@ -15,6 +15,7 @@ is therefore not compliant. ### Properties +- [id](audits_common.AuditFail.md#id) - [name](audits_common.AuditFail.md#name) - [reason](audits_common.AuditFail.md#reason) - [response](audits_common.AuditFail.md#response) @@ -22,6 +23,15 @@ is therefore not compliant. ## Properties +### id + +• **id**: `string` + +Uniquely represents the failing audit. Helps with pinning audits +without depending on the human readable audit name. + +___ + ### name • **name**: \`MUST ${string}\` \| \`SHOULD ${string}\` \| \`MAY ${string}\` diff --git a/docs/interfaces/audits_common.AuditOk.md b/docs/interfaces/audits_common.AuditOk.md index 25162bce..2382c437 100644 --- a/docs/interfaces/audits_common.AuditOk.md +++ b/docs/interfaces/audits_common.AuditOk.md @@ -10,11 +10,21 @@ Indicates that the audit was successful. ### Properties +- [id](audits_common.AuditOk.md#id) - [name](audits_common.AuditOk.md#name) - [status](audits_common.AuditOk.md#status) ## Properties +### id + +• **id**: `string` + +Uniquely represents the passing audit. Helps with pinning audits +without depending on the human readable audit name. + +___ + ### name • **name**: \`MUST ${string}\` \| \`SHOULD ${string}\` \| \`MAY ${string}\` diff --git a/implementations/apollo-server/README.md b/implementations/apollo-server/README.md index 7dc5747f..4910f8e8 100644 --- a/implementations/apollo-server/README.md +++ b/implementations/apollo-server/README.md @@ -7,64 +7,64 @@ _* This report was auto-generated by graphql-http_ - ⚠️ **25** warnings (optional) ## Passing -1. SHOULD accept application/graphql-response+json and match the content-type -2. MUST accept application/json and match the content-type -3. SHOULD accept \*/\* and use application/json for the content-type -4. MUST use utf-8 encoding when responding -5. MUST accept utf-8 encoded request -6. MUST assume utf-8 in request if encoding is unspecified -7. MUST accept POST requests -8. MAY NOT allow executing mutations on GET requests -9. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -10. MUST accept application/json POST requests -11. MUST require a request body on POST -12. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -13. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -14. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -15. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -16. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -17. SHOULD allow string {query} parameter when accepting application/graphql-response+json -18. MUST allow string {query} parameter when accepting application/json -19. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -20. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json -21. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json -22. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -23. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -24. MUST allow string {operationName} parameter when accepting application/json -25. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -26. MUST allow null {variables} parameter when accepting application/json -27. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -28. MUST allow null {operationName} parameter when accepting application/json -29. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -30. MUST allow null {extensions} parameter when accepting application/json -31. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -32. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json -33. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json -34. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json -35. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -36. MUST allow map {variables} parameter when accepting application/json -37. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json -38. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json -39. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json -40. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json -41. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -42. MUST allow map {extensions} parameter when accepting application/json -43. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -44. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -45. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -46. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -47. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -48. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -49. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -50. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -51. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -52. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -53. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `22EB` SHOULD accept application/graphql-response+json and match the content-type +2. `4655` MUST accept application/json and match the content-type +3. `47DE` SHOULD accept \*/\* and use application/json for the content-type +4. `82A3` MUST use utf-8 encoding when responding +5. `BF61` MUST accept utf-8 encoded request +6. `78D5` MUST assume utf-8 in request if encoding is unspecified +7. `2C94` MUST accept POST requests +8. `9C48` MAY NOT allow executing mutations on GET requests +9. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +10. `03D4` MUST accept application/json POST requests +11. `7267` MUST require a request body on POST +12. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +13. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +14. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +15. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +16. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +17. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +18. `13EE` MUST allow string {query} parameter when accepting application/json +19. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +20. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json +21. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json +22. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +23. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +24. `B8B3` MUST allow string {operationName} parameter when accepting application/json +25. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +26. `0220` MUST allow null {variables} parameter when accepting application/json +27. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +28. `0221` MUST allow null {operationName} parameter when accepting application/json +29. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +30. `0222` MUST allow null {extensions} parameter when accepting application/json +31. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +32. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json +33. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json +34. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json +35. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +36. `28B9` MUST allow map {variables} parameter when accepting application/json +37. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json +38. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json +39. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json +40. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json +41. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +42. `1B7A` MUST allow map {extensions} parameter when accepting application/json +43. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +44. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +45. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +46. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +47. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +48. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +49. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +50. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +51. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +52. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +53. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD assume application/json content-type when accept is missing
+ 1. `80D8` SHOULD assume application/json content-type when accept is missing
Response status code is not 200 @@ -105,7 +105,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. MAY accept application/x-www-form-urlencoded formatted GET requests
+ 2. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests
Response status code is not 200 @@ -146,7 +146,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
+ 3. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
Response status code is not 200 @@ -190,7 +190,7 @@ The server _SHOULD_ support these, but is not required. ```
- 4. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
+ 4. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
Response status code is not 200 @@ -232,7 +232,7 @@ The server _SHOULD_ support these, but is not required. ```
- 5. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
+ 5. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
Response status code is not 200 @@ -276,7 +276,7 @@ The server _SHOULD_ support these, but is not required. ```
- 6. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
+ 6. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
Response status code is not 200 @@ -320,7 +320,7 @@ The server _SHOULD_ support these, but is not required. ```
- 7. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
+ 7. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
Response status code is not 200 @@ -362,7 +362,7 @@ The server _SHOULD_ support these, but is not required. ```
- 8. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
+ 8. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
Response status code is not 200 @@ -403,7 +403,7 @@ The server _SHOULD_ support these, but is not required. ```
- 9. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
+ 9. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
Response status code is not 200 @@ -444,7 +444,7 @@ The server _SHOULD_ support these, but is not required. ```
- 10. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
+ 10. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
Response status code is not 200 @@ -485,7 +485,7 @@ The server _SHOULD_ support these, but is not required. ```
- 11. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
+ 11. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
Response status code is not 200 @@ -526,7 +526,7 @@ The server _SHOULD_ support these, but is not required. ```
- 12. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
+ 12. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200 @@ -567,7 +567,7 @@ The server _SHOULD_ support these, but is not required. ```
- 13. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
+ 13. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response status code is not 200 @@ -608,7 +608,7 @@ The server _SHOULD_ support these, but is not required. ```
- 14. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
+ 14. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response status code is not 200 @@ -649,7 +649,7 @@ The server _SHOULD_ support these, but is not required. ```
- 15. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
+ 15. `F053` SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
Response status code is not 200 @@ -690,7 +690,7 @@ The server _SHOULD_ support these, but is not required. ```
- 16. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json
+ 16. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json
Response status code is not 200 @@ -731,7 +731,7 @@ The server _SHOULD_ support these, but is not required. ```
- 17. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
+ 17. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
Response status code is not 200 @@ -772,7 +772,7 @@ The server _SHOULD_ support these, but is not required. ```
- 18. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
+ 18. `3680` SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
Response status code is not 200 @@ -813,7 +813,7 @@ The server _SHOULD_ support these, but is not required. ```
- 19. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
+ 19. `3681` SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
Response status code is not 200 @@ -854,7 +854,7 @@ The server _SHOULD_ support these, but is not required. ```
- 20. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
+ 20. `3682` SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
Response status code is not 200 @@ -895,7 +895,7 @@ The server _SHOULD_ support these, but is not required. ```
- 21. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
+ 21. `3683` SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
Response status code is not 200 @@ -936,7 +936,7 @@ The server _SHOULD_ support these, but is not required. ```
- 22. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 22. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -960,7 +960,7 @@ The server _SHOULD_ support these, but is not required. ```
- 23. SHOULD use 200 status code if parameters are invalid when accepting application/json
+ 23. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json
Response status code is not 200 @@ -1004,7 +1004,7 @@ The server _SHOULD_ support these, but is not required. ```
- 24. SHOULD use 200 status code on document parsing failure when accepting application/json
+ 24. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json
Response status code is not 200 @@ -1056,7 +1056,7 @@ The server _SHOULD_ support these, but is not required. ```
- 25. SHOULD use 200 status code on document validation failure when accepting application/json
+ 25. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json
Response status code is not 200 diff --git a/implementations/deno/README.md b/implementations/deno/README.md index e7140865..85ff9eff 100644 --- a/implementations/deno/README.md +++ b/implementations/deno/README.md @@ -7,46 +7,46 @@ _* This report was auto-generated by graphql-http_ - ⚠️ **43** warnings (optional) ## Passing -1. MUST accept application/json and match the content-type -2. SHOULD accept \*/\* and use application/json for the content-type -3. SHOULD assume application/json content-type when accept is missing -4. MUST use utf-8 encoding when responding -5. MUST accept utf-8 encoded request -6. MUST assume utf-8 in request if encoding is unspecified -7. MUST accept POST requests -8. MAY accept application/x-www-form-urlencoded formatted GET requests -9. MAY NOT allow executing mutations on GET requests -10. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -11. MUST accept application/json POST requests -12. MUST require a request body on POST -13. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json -14. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json -15. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json -16. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json -17. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json -18. MUST allow string {query} parameter when accepting application/json -19. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json -20. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json -21. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json -22. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json -23. MUST allow string {operationName} parameter when accepting application/json -24. MUST allow null {variables} parameter when accepting application/json -25. MUST allow null {operationName} parameter when accepting application/json -26. MUST allow null {extensions} parameter when accepting application/json -27. MUST allow map {variables} parameter when accepting application/json -28. MUST allow map {extensions} parameter when accepting application/json -29. SHOULD use 200 status code if parameters are invalid when accepting application/json -30. SHOULD use 200 status code on document parsing failure when accepting application/json -31. SHOULD use 200 status code on document validation failure when accepting application/json -32. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -33. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -34. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -35. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +1. `4655` MUST accept application/json and match the content-type +2. `47DE` SHOULD accept \*/\* and use application/json for the content-type +3. `80D8` SHOULD assume application/json content-type when accept is missing +4. `82A3` MUST use utf-8 encoding when responding +5. `BF61` MUST accept utf-8 encoded request +6. `78D5` MUST assume utf-8 in request if encoding is unspecified +7. `2C94` MUST accept POST requests +8. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +9. `9C48` MAY NOT allow executing mutations on GET requests +10. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +11. `03D4` MUST accept application/json POST requests +12. `7267` MUST require a request body on POST +13. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json +14. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json +15. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json +16. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json +17. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json +18. `13EE` MUST allow string {query} parameter when accepting application/json +19. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json +20. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json +21. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json +22. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json +23. `B8B3` MUST allow string {operationName} parameter when accepting application/json +24. `0220` MUST allow null {variables} parameter when accepting application/json +25. `0221` MUST allow null {operationName} parameter when accepting application/json +26. `0222` MUST allow null {extensions} parameter when accepting application/json +27. `28B9` MUST allow map {variables} parameter when accepting application/json +28. `1B7A` MUST allow map {extensions} parameter when accepting application/json +29. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json +30. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json +31. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json +32. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +33. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +34. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +35. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD accept application/graphql-response+json and match the content-type
+ 1. `22EB` SHOULD accept application/graphql-response+json and match the content-type
Response status code is not 200 @@ -66,7 +66,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json
+ 2. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -86,7 +86,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json
+ 3. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -106,7 +106,7 @@ The server _SHOULD_ support these, but is not required. ```
- 4. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json
+ 4. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -126,7 +126,7 @@ The server _SHOULD_ support these, but is not required. ```
- 5. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json
+ 5. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -146,7 +146,7 @@ The server _SHOULD_ support these, but is not required. ```
- 6. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json
+ 6. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -166,7 +166,7 @@ The server _SHOULD_ support these, but is not required. ```
- 7. SHOULD allow string {query} parameter when accepting application/graphql-response+json
+ 7. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -186,7 +186,7 @@ The server _SHOULD_ support these, but is not required. ```
- 8. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json
+ 8. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -206,7 +206,7 @@ The server _SHOULD_ support these, but is not required. ```
- 9. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
+ 9. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -226,7 +226,7 @@ The server _SHOULD_ support these, but is not required. ```
- 10. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
+ 10. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -246,7 +246,7 @@ The server _SHOULD_ support these, but is not required. ```
- 11. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json
+ 11. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -266,7 +266,7 @@ The server _SHOULD_ support these, but is not required. ```
- 12. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json
+ 12. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -286,7 +286,7 @@ The server _SHOULD_ support these, but is not required. ```
- 13. SHOULD allow null {variables} parameter when accepting application/graphql-response+json
+ 13. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -306,7 +306,7 @@ The server _SHOULD_ support these, but is not required. ```
- 14. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json
+ 14. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -326,7 +326,7 @@ The server _SHOULD_ support these, but is not required. ```
- 15. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json
+ 15. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -346,7 +346,7 @@ The server _SHOULD_ support these, but is not required. ```
- 16. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json
+ 16. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -366,7 +366,7 @@ The server _SHOULD_ support these, but is not required. ```
- 17. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
+ 17. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -386,7 +386,7 @@ The server _SHOULD_ support these, but is not required. ```
- 18. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
+ 18. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -406,7 +406,7 @@ The server _SHOULD_ support these, but is not required. ```
- 19. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
+ 19. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -426,7 +426,7 @@ The server _SHOULD_ support these, but is not required. ```
- 20. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
+ 20. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200 @@ -447,7 +447,7 @@ The server _SHOULD_ support these, but is not required. ```
- 21. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
+ 21. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response status code is not 200 @@ -468,7 +468,7 @@ The server _SHOULD_ support these, but is not required. ```
- 22. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
+ 22. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response status code is not 200 @@ -489,7 +489,7 @@ The server _SHOULD_ support these, but is not required. ```
- 23. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
+ 23. `F053` 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" @@ -510,7 +510,7 @@ The server _SHOULD_ support these, but is not required. ```
- 24. SHOULD allow map {variables} parameter when accepting application/graphql-response+json
+ 24. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -530,7 +530,7 @@ The server _SHOULD_ support these, but is not required. ```
- 25. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json
+ 25. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json
Response status code is not 200 @@ -550,7 +550,7 @@ The server _SHOULD_ support these, but is not required. ```
- 26. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
+ 26. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
Response body execution result has a property "errors" @@ -571,7 +571,7 @@ The server _SHOULD_ support these, but is not required. ```
- 27. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
+ 27. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -591,7 +591,7 @@ The server _SHOULD_ support these, but is not required. ```
- 28. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
+ 28. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -611,7 +611,7 @@ The server _SHOULD_ support these, but is not required. ```
- 29. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
+ 29. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -631,7 +631,7 @@ The server _SHOULD_ support these, but is not required. ```
- 30. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
+ 30. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -651,7 +651,7 @@ The server _SHOULD_ support these, but is not required. ```
- 31. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
+ 31. `3680` 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" @@ -672,7 +672,7 @@ The server _SHOULD_ support these, but is not required. ```
- 32. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
+ 32. `3681` 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" @@ -693,7 +693,7 @@ The server _SHOULD_ support these, but is not required. ```
- 33. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
+ 33. `3682` 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" @@ -714,7 +714,7 @@ The server _SHOULD_ support these, but is not required. ```
- 34. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
+ 34. `3683` 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" @@ -735,7 +735,7 @@ The server _SHOULD_ support these, but is not required. ```
- 35. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json
+ 35. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -755,7 +755,7 @@ The server _SHOULD_ support these, but is not required. ```
- 36. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 36. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -776,7 +776,7 @@ The server _SHOULD_ support these, but is not required. ```
- 37. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json
+ 37. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json
Response status code is not 400 @@ -796,7 +796,7 @@ The server _SHOULD_ support these, but is not required. ```
- 38. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json
+ 38. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json
Response status code is not 400 @@ -816,7 +816,7 @@ The server _SHOULD_ support these, but is not required. ```
- 39. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json
+ 39. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json
Response body is not valid JSON @@ -836,7 +836,7 @@ The server _SHOULD_ support these, but is not required. ```
- 40. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json
+ 40. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json
Response status code is not 400 @@ -856,7 +856,7 @@ The server _SHOULD_ support these, but is not required. ```
- 41. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json
+ 41. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json
Response body is not valid JSON @@ -876,7 +876,7 @@ The server _SHOULD_ support these, but is not required. ```
- 42. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json
+ 42. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json
Response status code is not 400 @@ -896,7 +896,7 @@ The server _SHOULD_ support these, but is not required. ```
- 43. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
+ 43. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
Response body is not valid JSON diff --git a/implementations/express-graphql/README.md b/implementations/express-graphql/README.md index b37529d8..20c8591c 100644 --- a/implementations/express-graphql/README.md +++ b/implementations/express-graphql/README.md @@ -7,56 +7,56 @@ _* This report was auto-generated by graphql-http_ - ⚠️ **33** warnings (optional) ## Passing -1. MUST accept application/json and match the content-type -2. SHOULD accept \*/\* and use application/json for the content-type -3. SHOULD assume application/json content-type when accept is missing -4. MUST use utf-8 encoding when responding -5. MUST accept utf-8 encoded request -6. MUST assume utf-8 in request if encoding is unspecified -7. MUST accept POST requests -8. MAY accept application/x-www-form-urlencoded formatted GET requests -9. MAY NOT allow executing mutations on GET requests -10. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -11. MUST accept application/json POST requests -12. MUST require a request body on POST -13. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -14. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -15. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -16. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -17. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -18. SHOULD allow string {query} parameter when accepting application/graphql-response+json -19. MUST allow string {query} parameter when accepting application/json -20. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -21. MUST allow string {operationName} parameter when accepting application/json -22. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -23. MUST allow null {variables} parameter when accepting application/json -24. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -25. MUST allow null {operationName} parameter when accepting application/json -26. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -27. MUST allow null {extensions} parameter when accepting application/json -28. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -29. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -30. MUST allow map {variables} parameter when accepting application/json -31. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -32. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json -33. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -34. MUST allow map {extensions} parameter when accepting application/json -35. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -36. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -37. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -38. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -39. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -40. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -41. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -42. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -43. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -44. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -45. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `4655` MUST accept application/json and match the content-type +2. `47DE` SHOULD accept \*/\* and use application/json for the content-type +3. `80D8` SHOULD assume application/json content-type when accept is missing +4. `82A3` MUST use utf-8 encoding when responding +5. `BF61` MUST accept utf-8 encoded request +6. `78D5` MUST assume utf-8 in request if encoding is unspecified +7. `2C94` MUST accept POST requests +8. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +9. `9C48` MAY NOT allow executing mutations on GET requests +10. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +11. `03D4` MUST accept application/json POST requests +12. `7267` MUST require a request body on POST +13. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +14. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +15. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +16. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +17. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +18. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +19. `13EE` MUST allow string {query} parameter when accepting application/json +20. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +21. `B8B3` MUST allow string {operationName} parameter when accepting application/json +22. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +23. `0220` MUST allow null {variables} parameter when accepting application/json +24. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +25. `0221` MUST allow null {operationName} parameter when accepting application/json +26. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +27. `0222` MUST allow null {extensions} parameter when accepting application/json +28. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +29. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +30. `28B9` MUST allow map {variables} parameter when accepting application/json +31. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +32. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json +33. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +34. `1B7A` MUST allow map {extensions} parameter when accepting application/json +35. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +36. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +37. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +38. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +39. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +40. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +41. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +42. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +43. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +44. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +45. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD accept application/graphql-response+json and match the content-type
+ 1. `22EB` SHOULD accept application/graphql-response+json and match the content-type
Response header content-type does not contain application/graphql-response+json @@ -82,7 +82,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
+ 2. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
Response status code is not 200 @@ -110,7 +110,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
+ 3. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
Response status code is not 200 @@ -138,7 +138,7 @@ The server _SHOULD_ support these, but is not required. ```
- 4. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
+ 4. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
Response status code is not 200 @@ -166,7 +166,7 @@ The server _SHOULD_ support these, but is not required. ```
- 5. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
+ 5. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
Response status code is not 200 @@ -194,7 +194,7 @@ The server _SHOULD_ support these, but is not required. ```
- 6. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
+ 6. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
Response status code is not 200 @@ -222,7 +222,7 @@ The server _SHOULD_ support these, but is not required. ```
- 7. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json
+ 7. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -248,7 +248,7 @@ The server _SHOULD_ support these, but is not required. ```
- 8. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
+ 8. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -274,7 +274,7 @@ The server _SHOULD_ support these, but is not required. ```
- 9. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
+ 9. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -300,7 +300,7 @@ The server _SHOULD_ support these, but is not required. ```
- 10. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json
+ 10. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -326,7 +326,7 @@ The server _SHOULD_ support these, but is not required. ```
- 11. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
+ 11. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -348,7 +348,7 @@ The server _SHOULD_ support these, but is not required. ```
- 12. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
+ 12. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -370,7 +370,7 @@ The server _SHOULD_ support these, but is not required. ```
- 13. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
+ 13. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -392,7 +392,7 @@ The server _SHOULD_ support these, but is not required. ```
- 14. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
+ 14. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -414,7 +414,7 @@ The server _SHOULD_ support these, but is not required. ```
- 15. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
+ 15. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -440,7 +440,7 @@ The server _SHOULD_ support these, but is not required. ```
- 16. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
+ 16. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -466,7 +466,7 @@ The server _SHOULD_ support these, but is not required. ```
- 17. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
+ 17. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -492,7 +492,7 @@ The server _SHOULD_ support these, but is not required. ```
- 18. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
+ 18. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200 @@ -520,7 +520,7 @@ The server _SHOULD_ support these, but is not required. ```
- 19. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
+ 19. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -542,7 +542,7 @@ The server _SHOULD_ support these, but is not required. ```
- 20. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
+ 20. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -564,7 +564,7 @@ The server _SHOULD_ support these, but is not required. ```
- 21. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
+ 21. `F053` 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" @@ -586,7 +586,7 @@ The server _SHOULD_ support these, but is not required. ```
- 22. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
+ 22. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -612,7 +612,7 @@ The server _SHOULD_ support these, but is not required. ```
- 23. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
+ 23. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -638,7 +638,7 @@ The server _SHOULD_ support these, but is not required. ```
- 24. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
+ 24. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -664,7 +664,7 @@ The server _SHOULD_ support these, but is not required. ```
- 25. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
+ 25. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -690,7 +690,7 @@ The server _SHOULD_ support these, but is not required. ```
- 26. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
+ 26. `3680` 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" @@ -712,7 +712,7 @@ The server _SHOULD_ support these, but is not required. ```
- 27. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
+ 27. `3681` 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" @@ -734,7 +734,7 @@ The server _SHOULD_ support these, but is not required. ```
- 28. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
+ 28. `3682` 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" @@ -756,7 +756,7 @@ The server _SHOULD_ support these, but is not required. ```
- 29. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
+ 29. `3683` 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" @@ -778,7 +778,7 @@ The server _SHOULD_ support these, but is not required. ```
- 30. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 30. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -806,7 +806,7 @@ The server _SHOULD_ support these, but is not required. ```
- 31. SHOULD use 200 status code if parameters are invalid when accepting application/json
+ 31. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json
Response status code is not 200 @@ -834,7 +834,7 @@ The server _SHOULD_ support these, but is not required. ```
- 32. SHOULD use 200 status code on document parsing failure when accepting application/json
+ 32. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json
Response status code is not 200 @@ -868,7 +868,7 @@ The server _SHOULD_ support these, but is not required. ```
- 33. SHOULD use 200 status code on document validation failure when accepting application/json
+ 33. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json
Response status code is not 200 diff --git a/implementations/graph-client/README.md b/implementations/graph-client/README.md index bc6f604c..a1c8df42 100644 --- a/implementations/graph-client/README.md +++ b/implementations/graph-client/README.md @@ -6,82 +6,82 @@ _* This report was auto-generated by graphql-http_ - ✅ **78** pass ## Passing -1. SHOULD accept application/graphql-response+json and match the content-type -2. MUST accept application/json and match the content-type -3. SHOULD accept \*/\* and use application/json for the content-type -4. SHOULD assume application/json content-type when accept is missing -5. MUST use utf-8 encoding when responding -6. MUST accept utf-8 encoded request -7. MUST assume utf-8 in request if encoding is unspecified -8. MUST accept POST requests -9. MAY accept application/x-www-form-urlencoded formatted GET requests -10. MAY NOT allow executing mutations on GET requests -11. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -12. MUST accept application/json POST requests -13. MUST require a request body on POST -14. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -15. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json -16. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -17. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -18. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -19. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -20. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json -21. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json -22. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json -23. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json -24. SHOULD allow string {query} parameter when accepting application/graphql-response+json -25. MUST allow string {query} parameter when accepting application/json -26. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -27. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json -28. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json -29. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -30. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json -31. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json -32. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json -33. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json -34. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -35. MUST allow string {operationName} parameter when accepting application/json -36. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -37. MUST allow null {variables} parameter when accepting application/json -38. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -39. MUST allow null {operationName} parameter when accepting application/json -40. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -41. MUST allow null {extensions} parameter when accepting application/json -42. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -43. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json -44. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json -45. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json -46. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json -47. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json -48. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json -49. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json -50. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -51. MUST allow map {variables} parameter when accepting application/json -52. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -53. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json -54. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json -55. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json -56. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json -57. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json -58. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json -59. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json -60. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json -61. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json -62. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -63. MUST allow map {extensions} parameter when accepting application/json -64. SHOULD use 200 status code on JSON parsing failure when accepting application/json -65. SHOULD use 200 status code if parameters are invalid when accepting application/json -66. SHOULD use 200 status code on document parsing failure when accepting application/json -67. SHOULD use 200 status code on document validation failure when accepting application/json -68. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -69. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -70. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -71. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -72. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -73. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -74. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -75. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -76. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -77. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -78. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `22EB` SHOULD accept application/graphql-response+json and match the content-type +2. `4655` MUST accept application/json and match the content-type +3. `47DE` SHOULD accept \*/\* and use application/json for the content-type +4. `80D8` SHOULD assume application/json content-type when accept is missing +5. `82A3` MUST use utf-8 encoding when responding +6. `BF61` MUST accept utf-8 encoded request +7. `78D5` MUST assume utf-8 in request if encoding is unspecified +8. `2C94` MUST accept POST requests +9. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +10. `9C48` MAY NOT allow executing mutations on GET requests +11. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +12. `03D4` MUST accept application/json POST requests +13. `7267` MUST require a request body on POST +14. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +15. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json +16. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +17. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +18. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +19. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +20. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json +21. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json +22. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json +23. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json +24. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +25. `13EE` MUST allow string {query} parameter when accepting application/json +26. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +27. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json +28. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json +29. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +30. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json +31. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json +32. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json +33. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json +34. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +35. `B8B3` MUST allow string {operationName} parameter when accepting application/json +36. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +37. `0220` MUST allow null {variables} parameter when accepting application/json +38. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +39. `0221` MUST allow null {operationName} parameter when accepting application/json +40. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +41. `0222` MUST allow null {extensions} parameter when accepting application/json +42. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +43. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json +44. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json +45. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json +46. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json +47. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json +48. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json +49. `F053` SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json +50. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +51. `28B9` MUST allow map {variables} parameter when accepting application/json +52. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +53. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json +54. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json +55. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json +56. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json +57. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json +58. `3680` SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json +59. `3681` SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json +60. `3682` SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json +61. `3683` SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json +62. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +63. `1B7A` MUST allow map {extensions} parameter when accepting application/json +64. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json +65. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json +66. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json +67. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json +68. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +69. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +70. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +71. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +72. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +73. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +74. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +75. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +76. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +77. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +78. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json diff --git a/implementations/graphql-helix/README.md b/implementations/graphql-helix/README.md index 0f76de75..f71435ba 100644 --- a/implementations/graphql-helix/README.md +++ b/implementations/graphql-helix/README.md @@ -7,60 +7,60 @@ _* This report was auto-generated by graphql-http_ - ⚠️ **29** warnings (optional) ## Passing -1. MUST accept application/json and match the content-type -2. SHOULD accept \*/\* and use application/json for the content-type -3. SHOULD assume application/json content-type when accept is missing -4. MUST use utf-8 encoding when responding -5. MUST accept utf-8 encoded request -6. MUST assume utf-8 in request if encoding is unspecified -7. MUST accept POST requests -8. MAY accept application/x-www-form-urlencoded formatted GET requests -9. MAY NOT allow executing mutations on GET requests -10. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -11. MUST accept application/json POST requests -12. MUST require a request body on POST -13. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -14. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -15. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -16. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -17. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -18. SHOULD allow string {query} parameter when accepting application/graphql-response+json -19. MUST allow string {query} parameter when accepting application/json -20. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -21. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json -22. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json -23. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -24. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -25. MUST allow string {operationName} parameter when accepting application/json -26. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -27. MUST allow null {variables} parameter when accepting application/json -28. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -29. MUST allow null {operationName} parameter when accepting application/json -30. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -31. MUST allow null {extensions} parameter when accepting application/json -32. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -33. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -34. MUST allow map {variables} parameter when accepting application/json -35. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -36. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json -37. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -38. MUST allow map {extensions} parameter when accepting application/json -39. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -40. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -41. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -42. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -43. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -44. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -45. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -46. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -47. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -48. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -49. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `4655` MUST accept application/json and match the content-type +2. `47DE` SHOULD accept \*/\* and use application/json for the content-type +3. `80D8` SHOULD assume application/json content-type when accept is missing +4. `82A3` MUST use utf-8 encoding when responding +5. `BF61` MUST accept utf-8 encoded request +6. `78D5` MUST assume utf-8 in request if encoding is unspecified +7. `2C94` MUST accept POST requests +8. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +9. `9C48` MAY NOT allow executing mutations on GET requests +10. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +11. `03D4` MUST accept application/json POST requests +12. `7267` MUST require a request body on POST +13. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +14. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +15. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +16. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +17. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +18. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +19. `13EE` MUST allow string {query} parameter when accepting application/json +20. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +21. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json +22. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json +23. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +24. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +25. `B8B3` MUST allow string {operationName} parameter when accepting application/json +26. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +27. `0220` MUST allow null {variables} parameter when accepting application/json +28. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +29. `0221` MUST allow null {operationName} parameter when accepting application/json +30. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +31. `0222` MUST allow null {extensions} parameter when accepting application/json +32. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +33. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +34. `28B9` MUST allow map {variables} parameter when accepting application/json +35. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +36. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json +37. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +38. `1B7A` MUST allow map {extensions} parameter when accepting application/json +39. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +40. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +41. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +42. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +43. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +44. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +45. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +46. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +47. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +48. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +49. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD accept application/graphql-response+json and match the content-type
+ 1. `22EB` SHOULD accept application/graphql-response+json and match the content-type
Response header content-type does not contain application/graphql-response+json @@ -85,7 +85,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
+ 2. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
Response status code is not 200 @@ -112,7 +112,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
+ 3. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
Response status code is not 200 @@ -137,7 +137,7 @@ The server _SHOULD_ support these, but is not required. ```
- 4. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
+ 4. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
Response status code is not 200 @@ -162,7 +162,7 @@ The server _SHOULD_ support these, but is not required. ```
- 5. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
+ 5. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
Response status code is not 200 @@ -187,7 +187,7 @@ The server _SHOULD_ support these, but is not required. ```
- 6. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
+ 6. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
Response status code is not 200 @@ -212,7 +212,7 @@ The server _SHOULD_ support these, but is not required. ```
- 7. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
+ 7. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
Response status code is not 200 @@ -239,7 +239,7 @@ The server _SHOULD_ support these, but is not required. ```
- 8. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
+ 8. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
Response status code is not 200 @@ -266,7 +266,7 @@ The server _SHOULD_ support these, but is not required. ```
- 9. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
+ 9. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
Response status code is not 200 @@ -293,7 +293,7 @@ The server _SHOULD_ support these, but is not required. ```
- 10. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
+ 10. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
Response status code is not 200 @@ -320,7 +320,7 @@ The server _SHOULD_ support these, but is not required. ```
- 11. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
+ 11. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -345,7 +345,7 @@ The server _SHOULD_ support these, but is not required. ```
- 12. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
+ 12. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -370,7 +370,7 @@ The server _SHOULD_ support these, but is not required. ```
- 13. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
+ 13. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -395,7 +395,7 @@ The server _SHOULD_ support these, but is not required. ```
- 14. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
+ 14. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200 @@ -422,7 +422,7 @@ The server _SHOULD_ support these, but is not required. ```
- 15. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
+ 15. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -443,7 +443,7 @@ The server _SHOULD_ support these, but is not required. ```
- 16. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
+ 16. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -464,7 +464,7 @@ The server _SHOULD_ support these, but is not required. ```
- 17. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
+ 17. `F053` 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" @@ -485,7 +485,7 @@ The server _SHOULD_ support these, but is not required. ```
- 18. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
+ 18. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -510,7 +510,7 @@ The server _SHOULD_ support these, but is not required. ```
- 19. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
+ 19. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -535,7 +535,7 @@ The server _SHOULD_ support these, but is not required. ```
- 20. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
+ 20. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -560,7 +560,7 @@ The server _SHOULD_ support these, but is not required. ```
- 21. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
+ 21. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -585,7 +585,7 @@ The server _SHOULD_ support these, but is not required. ```
- 22. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
+ 22. `3680` 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" @@ -606,7 +606,7 @@ The server _SHOULD_ support these, but is not required. ```
- 23. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
+ 23. `3681` 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" @@ -627,7 +627,7 @@ The server _SHOULD_ support these, but is not required. ```
- 24. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
+ 24. `3682` 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" @@ -648,7 +648,7 @@ The server _SHOULD_ support these, but is not required. ```
- 25. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
+ 25. `3683` 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" @@ -669,7 +669,7 @@ The server _SHOULD_ support these, but is not required. ```
- 26. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 26. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -692,7 +692,7 @@ The server _SHOULD_ support these, but is not required. ```
- 27. SHOULD use 200 status code if parameters are invalid when accepting application/json
+ 27. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json
Response status code is not 200 @@ -719,7 +719,7 @@ The server _SHOULD_ support these, but is not required. ```
- 28. SHOULD use 200 status code on document parsing failure when accepting application/json
+ 28. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json
Response status code is not 200 @@ -752,7 +752,7 @@ The server _SHOULD_ support these, but is not required. ```
- 29. SHOULD use 200 status code on document validation failure when accepting application/json
+ 29. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json
Response status code is not 200 diff --git a/implementations/graphql-yoga/README.md b/implementations/graphql-yoga/README.md index bc6f604c..a1c8df42 100644 --- a/implementations/graphql-yoga/README.md +++ b/implementations/graphql-yoga/README.md @@ -6,82 +6,82 @@ _* This report was auto-generated by graphql-http_ - ✅ **78** pass ## Passing -1. SHOULD accept application/graphql-response+json and match the content-type -2. MUST accept application/json and match the content-type -3. SHOULD accept \*/\* and use application/json for the content-type -4. SHOULD assume application/json content-type when accept is missing -5. MUST use utf-8 encoding when responding -6. MUST accept utf-8 encoded request -7. MUST assume utf-8 in request if encoding is unspecified -8. MUST accept POST requests -9. MAY accept application/x-www-form-urlencoded formatted GET requests -10. MAY NOT allow executing mutations on GET requests -11. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -12. MUST accept application/json POST requests -13. MUST require a request body on POST -14. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -15. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json -16. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -17. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -18. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -19. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -20. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json -21. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json -22. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json -23. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json -24. SHOULD allow string {query} parameter when accepting application/graphql-response+json -25. MUST allow string {query} parameter when accepting application/json -26. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -27. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json -28. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json -29. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -30. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json -31. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json -32. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json -33. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json -34. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -35. MUST allow string {operationName} parameter when accepting application/json -36. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -37. MUST allow null {variables} parameter when accepting application/json -38. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -39. MUST allow null {operationName} parameter when accepting application/json -40. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -41. MUST allow null {extensions} parameter when accepting application/json -42. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -43. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json -44. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json -45. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json -46. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json -47. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json -48. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json -49. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json -50. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -51. MUST allow map {variables} parameter when accepting application/json -52. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -53. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json -54. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json -55. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json -56. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json -57. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json -58. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json -59. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json -60. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json -61. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json -62. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -63. MUST allow map {extensions} parameter when accepting application/json -64. SHOULD use 200 status code on JSON parsing failure when accepting application/json -65. SHOULD use 200 status code if parameters are invalid when accepting application/json -66. SHOULD use 200 status code on document parsing failure when accepting application/json -67. SHOULD use 200 status code on document validation failure when accepting application/json -68. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -69. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -70. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -71. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -72. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -73. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -74. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -75. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -76. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -77. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -78. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `22EB` SHOULD accept application/graphql-response+json and match the content-type +2. `4655` MUST accept application/json and match the content-type +3. `47DE` SHOULD accept \*/\* and use application/json for the content-type +4. `80D8` SHOULD assume application/json content-type when accept is missing +5. `82A3` MUST use utf-8 encoding when responding +6. `BF61` MUST accept utf-8 encoded request +7. `78D5` MUST assume utf-8 in request if encoding is unspecified +8. `2C94` MUST accept POST requests +9. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +10. `9C48` MAY NOT allow executing mutations on GET requests +11. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +12. `03D4` MUST accept application/json POST requests +13. `7267` MUST require a request body on POST +14. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +15. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json +16. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +17. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +18. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +19. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +20. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json +21. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json +22. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json +23. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json +24. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +25. `13EE` MUST allow string {query} parameter when accepting application/json +26. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +27. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json +28. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json +29. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +30. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json +31. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json +32. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json +33. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json +34. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +35. `B8B3` MUST allow string {operationName} parameter when accepting application/json +36. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +37. `0220` MUST allow null {variables} parameter when accepting application/json +38. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +39. `0221` MUST allow null {operationName} parameter when accepting application/json +40. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +41. `0222` MUST allow null {extensions} parameter when accepting application/json +42. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +43. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json +44. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json +45. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json +46. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json +47. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json +48. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json +49. `F053` SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json +50. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +51. `28B9` MUST allow map {variables} parameter when accepting application/json +52. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +53. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json +54. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json +55. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json +56. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json +57. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json +58. `3680` SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json +59. `3681` SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json +60. `3682` SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json +61. `3683` SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json +62. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +63. `1B7A` MUST allow map {extensions} parameter when accepting application/json +64. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json +65. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json +66. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json +67. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json +68. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +69. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +70. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +71. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +72. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +73. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +74. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +75. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +76. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +77. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +78. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json diff --git a/implementations/hotchocolate/README.md b/implementations/hotchocolate/README.md index 6b3b3a3e..76e1b5e9 100644 --- a/implementations/hotchocolate/README.md +++ b/implementations/hotchocolate/README.md @@ -7,87 +7,87 @@ _* This report was auto-generated by graphql-http_ - ⚠️ **2** warnings (optional) ## Passing -1. SHOULD accept application/graphql-response+json and match the content-type -2. MUST accept application/json and match the content-type -3. MUST use utf-8 encoding when responding -4. MUST accept utf-8 encoded request -5. MUST assume utf-8 in request if encoding is unspecified -6. MUST accept POST requests -7. MAY accept application/x-www-form-urlencoded formatted GET requests -8. MAY NOT allow executing mutations on GET requests -9. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -10. MUST accept application/json POST requests -11. MUST require a request body on POST -12. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -13. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json -14. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -15. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -16. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -17. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -18. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json -19. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json -20. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json -21. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json -22. SHOULD allow string {query} parameter when accepting application/graphql-response+json -23. MUST allow string {query} parameter when accepting application/json -24. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -25. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json -26. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json -27. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -28. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json -29. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json -30. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json -31. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json -32. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -33. MUST allow string {operationName} parameter when accepting application/json -34. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -35. MUST allow null {variables} parameter when accepting application/json -36. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -37. MUST allow null {operationName} parameter when accepting application/json -38. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -39. MUST allow null {extensions} parameter when accepting application/json -40. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -41. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json -42. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json -43. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json -44. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json -45. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json -46. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json -47. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json -48. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -49. MUST allow map {variables} parameter when accepting application/json -50. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -51. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json -52. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json -53. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json -54. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json -55. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json -56. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json -57. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json -58. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json -59. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json -60. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -61. MUST allow map {extensions} parameter when accepting application/json -62. SHOULD use 200 status code on JSON parsing failure when accepting application/json -63. SHOULD use 200 status code if parameters are invalid when accepting application/json -64. SHOULD use 200 status code on document parsing failure when accepting application/json -65. SHOULD use 200 status code on document validation failure when accepting application/json -66. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -67. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -68. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -69. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -70. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -71. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -72. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -73. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -74. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -75. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -76. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `22EB` SHOULD accept application/graphql-response+json and match the content-type +2. `4655` MUST accept application/json and match the content-type +3. `82A3` MUST use utf-8 encoding when responding +4. `BF61` MUST accept utf-8 encoded request +5. `78D5` MUST assume utf-8 in request if encoding is unspecified +6. `2C94` MUST accept POST requests +7. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +8. `9C48` MAY NOT allow executing mutations on GET requests +9. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +10. `03D4` MUST accept application/json POST requests +11. `7267` MUST require a request body on POST +12. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +13. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json +14. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +15. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +16. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +17. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +18. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json +19. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json +20. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json +21. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json +22. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +23. `13EE` MUST allow string {query} parameter when accepting application/json +24. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +25. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json +26. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json +27. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +28. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json +29. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json +30. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json +31. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json +32. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +33. `B8B3` MUST allow string {operationName} parameter when accepting application/json +34. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +35. `0220` MUST allow null {variables} parameter when accepting application/json +36. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +37. `0221` MUST allow null {operationName} parameter when accepting application/json +38. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +39. `0222` MUST allow null {extensions} parameter when accepting application/json +40. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +41. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json +42. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json +43. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json +44. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json +45. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json +46. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json +47. `F053` SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json +48. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +49. `28B9` MUST allow map {variables} parameter when accepting application/json +50. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +51. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json +52. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json +53. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json +54. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json +55. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json +56. `3680` SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json +57. `3681` SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json +58. `3682` SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json +59. `3683` SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json +60. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +61. `1B7A` MUST allow map {extensions} parameter when accepting application/json +62. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json +63. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json +64. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json +65. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json +66. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +67. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +68. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +69. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +70. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +71. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +72. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +73. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +74. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +75. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +76. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD accept \*/\* and use application/json for the content-type
+ 1. `47DE` SHOULD accept \*/\* and use application/json for the content-type
Response header content-type does not contain application/json @@ -112,7 +112,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD assume application/json content-type when accept is missing
+ 2. `80D8` SHOULD assume application/json content-type when accept is missing
Response header content-type does not contain application/json diff --git a/implementations/mercurius/README.md b/implementations/mercurius/README.md index d742c41d..d2c68f42 100644 --- a/implementations/mercurius/README.md +++ b/implementations/mercurius/README.md @@ -8,60 +8,60 @@ _* This report was auto-generated by graphql-http_ - ❌ **1** errors (required) ## Passing -1. MUST accept application/json and match the content-type -2. SHOULD accept \*/\* and use application/json for the content-type -3. SHOULD assume application/json content-type when accept is missing -4. MUST use utf-8 encoding when responding -5. MUST accept utf-8 encoded request -6. MUST assume utf-8 in request if encoding is unspecified -7. MUST accept POST requests -8. MAY accept application/x-www-form-urlencoded formatted GET requests -9. MAY NOT allow executing mutations on GET requests -10. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -11. MUST accept application/json POST requests -12. MUST require a request body on POST -13. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -14. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -15. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -16. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json -17. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json -18. SHOULD allow string {query} parameter when accepting application/graphql-response+json -19. MUST allow string {query} parameter when accepting application/json -20. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -21. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -22. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json -23. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json -24. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -25. MUST allow string {operationName} parameter when accepting application/json -26. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -27. MUST allow null {variables} parameter when accepting application/json -28. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -29. MUST allow null {operationName} parameter when accepting application/json -30. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -31. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json -32. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -33. MUST allow map {variables} parameter when accepting application/json -34. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -35. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json -36. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json -37. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json -38. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json -39. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json -40. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -41. MUST allow map {extensions} parameter when accepting application/json -42. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -43. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -44. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -45. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -46. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -47. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -48. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -49. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +1. `4655` MUST accept application/json and match the content-type +2. `47DE` SHOULD accept \*/\* and use application/json for the content-type +3. `80D8` SHOULD assume application/json content-type when accept is missing +4. `82A3` MUST use utf-8 encoding when responding +5. `BF61` MUST accept utf-8 encoded request +6. `78D5` MUST assume utf-8 in request if encoding is unspecified +7. `2C94` MUST accept POST requests +8. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +9. `9C48` MAY NOT allow executing mutations on GET requests +10. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +11. `03D4` MUST accept application/json POST requests +12. `7267` MUST require a request body on POST +13. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +14. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +15. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +16. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json +17. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json +18. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +19. `13EE` MUST allow string {query} parameter when accepting application/json +20. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +21. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +22. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json +23. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json +24. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +25. `B8B3` MUST allow string {operationName} parameter when accepting application/json +26. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +27. `0220` MUST allow null {variables} parameter when accepting application/json +28. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +29. `0221` MUST allow null {operationName} parameter when accepting application/json +30. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +31. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json +32. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +33. `28B9` MUST allow map {variables} parameter when accepting application/json +34. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +35. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json +36. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json +37. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json +38. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json +39. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json +40. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +41. `1B7A` MUST allow map {extensions} parameter when accepting application/json +42. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +43. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +44. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +45. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +46. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +47. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +48. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +49. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD accept application/graphql-response+json and match the content-type
+ 1. `22EB` SHOULD accept application/graphql-response+json and match the content-type
Response header content-type does not contain application/graphql-response+json @@ -85,7 +85,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
+ 2. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
Response status code is not 200 @@ -112,7 +112,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json
+ 3. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -139,7 +139,7 @@ The server _SHOULD_ support these, but is not required. ```
- 4. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json
+ 4. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -166,7 +166,7 @@ The server _SHOULD_ support these, but is not required. ```
- 5. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
+ 5. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
Response status code is not 200 @@ -193,7 +193,7 @@ The server _SHOULD_ support these, but is not required. ```
- 6. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
+ 6. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
Response status code is not 200 @@ -226,7 +226,7 @@ The server _SHOULD_ support these, but is not required. ```
- 7. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
+ 7. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -253,7 +253,7 @@ The server _SHOULD_ support these, but is not required. ```
- 8. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
+ 8. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -280,7 +280,7 @@ The server _SHOULD_ support these, but is not required. ```
- 9. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
+ 9. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
Response status code is not 200 @@ -307,7 +307,7 @@ The server _SHOULD_ support these, but is not required. ```
- 10. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
+ 10. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
Response status code is not 200 @@ -334,7 +334,7 @@ The server _SHOULD_ support these, but is not required. ```
- 11. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json
+ 11. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -361,7 +361,7 @@ The server _SHOULD_ support these, but is not required. ```
- 12. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
+ 12. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -385,7 +385,7 @@ The server _SHOULD_ support these, but is not required. ```
- 13. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
+ 13. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -409,7 +409,7 @@ The server _SHOULD_ support these, but is not required. ```
- 14. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
+ 14. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200 @@ -436,7 +436,7 @@ The server _SHOULD_ support these, but is not required. ```
- 15. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
+ 15. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -456,7 +456,7 @@ The server _SHOULD_ support these, but is not required. ```
- 16. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
+ 16. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response body execution result does not have a property "errors" @@ -476,7 +476,7 @@ The server _SHOULD_ support these, but is not required. ```
- 17. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
+ 17. `F053` SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
Response status code is not 200 @@ -503,7 +503,7 @@ The server _SHOULD_ support these, but is not required. ```
- 18. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
+ 18. `3680` SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
Response status code is not 200 @@ -530,7 +530,7 @@ The server _SHOULD_ support these, but is not required. ```
- 19. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
+ 19. `3681` SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
Response status code is not 200 @@ -557,7 +557,7 @@ The server _SHOULD_ support these, but is not required. ```
- 20. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
+ 20. `3682` SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
Response status code is not 200 @@ -584,7 +584,7 @@ The server _SHOULD_ support these, but is not required. ```
- 21. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
+ 21. `3683` SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
Response status code is not 200 @@ -611,7 +611,7 @@ The server _SHOULD_ support these, but is not required. ```
- 22. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 22. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -638,7 +638,7 @@ The server _SHOULD_ support these, but is not required. ```
- 23. SHOULD use 200 status code if parameters are invalid when accepting application/json
+ 23. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json
Response status code is not 200 @@ -665,7 +665,7 @@ The server _SHOULD_ support these, but is not required. ```
- 24. SHOULD use 200 status code on document parsing failure when accepting application/json
+ 24. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json
Response status code is not 200 @@ -698,7 +698,7 @@ The server _SHOULD_ support these, but is not required. ```
- 25. SHOULD use 200 status code on document validation failure when accepting application/json
+ 25. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json
Response status code is not 200 @@ -731,7 +731,7 @@ The server _SHOULD_ support these, but is not required. ```
- 26. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json
+ 26. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json
Response body execution result data is not "undefined" @@ -751,7 +751,7 @@ The server _SHOULD_ support these, but is not required. ```
- 27. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json
+ 27. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json
Response body execution result data is not "undefined" @@ -771,7 +771,7 @@ The server _SHOULD_ support these, but is not required. ```
- 28. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
+ 28. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
Response body execution result data is not "undefined" @@ -795,7 +795,7 @@ The server _SHOULD_ support these, but is not required. ## Errors The server _MUST_ support these. - 1. MUST allow null {extensions} parameter when accepting application/json
+ 1. `0222` MUST allow null {extensions} parameter when accepting application/json
Response status code is not 200 diff --git a/implementations/pioneer/README.md b/implementations/pioneer/README.md index bb678159..b751945f 100644 --- a/implementations/pioneer/README.md +++ b/implementations/pioneer/README.md @@ -7,86 +7,86 @@ _* This report was auto-generated by graphql-http_ - ⚠️ **3** warnings (optional) ## Passing -1. SHOULD accept application/graphql-response+json and match the content-type -2. MUST accept application/json and match the content-type -3. SHOULD accept \*/\* and use application/json for the content-type -4. SHOULD assume application/json content-type when accept is missing -5. MUST use utf-8 encoding when responding -6. MUST accept utf-8 encoded request -7. MUST assume utf-8 in request if encoding is unspecified -8. MUST accept POST requests -9. MAY accept application/x-www-form-urlencoded formatted GET requests -10. MAY NOT allow executing mutations on GET requests -11. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -12. MUST accept application/json POST requests -13. MUST require a request body on POST -14. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -15. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json -16. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json -17. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -18. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -19. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json -20. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json -21. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json -22. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json -23. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json -24. SHOULD allow string {query} parameter when accepting application/graphql-response+json -25. MUST allow string {query} parameter when accepting application/json -26. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -27. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json -28. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json -29. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -30. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json -31. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json -32. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json -33. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json -34. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -35. MUST allow string {operationName} parameter when accepting application/json -36. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -37. MUST allow null {variables} parameter when accepting application/json -38. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -39. MUST allow null {operationName} parameter when accepting application/json -40. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -41. MUST allow null {extensions} parameter when accepting application/json -42. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -43. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json -44. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json -45. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json -46. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json -47. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json -48. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json -49. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json -50. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -51. MUST allow map {variables} parameter when accepting application/json -52. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -53. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json -54. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json -55. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json -56. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json -57. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json -58. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json -59. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json -60. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json -61. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json -62. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -63. MUST allow map {extensions} parameter when accepting application/json -64. SHOULD use 200 status code if parameters are invalid when accepting application/json -65. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -66. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -67. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -68. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -69. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -70. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -71. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -72. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -73. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -74. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -75. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `22EB` SHOULD accept application/graphql-response+json and match the content-type +2. `4655` MUST accept application/json and match the content-type +3. `47DE` SHOULD accept \*/\* and use application/json for the content-type +4. `80D8` SHOULD assume application/json content-type when accept is missing +5. `82A3` MUST use utf-8 encoding when responding +6. `BF61` MUST accept utf-8 encoded request +7. `78D5` MUST assume utf-8 in request if encoding is unspecified +8. `2C94` MUST accept POST requests +9. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +10. `9C48` MAY NOT allow executing mutations on GET requests +11. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +12. `03D4` MUST accept application/json POST requests +13. `7267` MUST require a request body on POST +14. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +15. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json +16. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json +17. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +18. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +19. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json +20. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json +21. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json +22. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json +23. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json +24. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +25. `13EE` MUST allow string {query} parameter when accepting application/json +26. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +27. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json +28. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json +29. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +30. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json +31. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json +32. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json +33. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json +34. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +35. `B8B3` MUST allow string {operationName} parameter when accepting application/json +36. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +37. `0220` MUST allow null {variables} parameter when accepting application/json +38. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +39. `0221` MUST allow null {operationName} parameter when accepting application/json +40. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +41. `0222` MUST allow null {extensions} parameter when accepting application/json +42. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +43. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json +44. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json +45. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json +46. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json +47. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json +48. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json +49. `F053` SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json +50. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +51. `28B9` MUST allow map {variables} parameter when accepting application/json +52. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +53. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json +54. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json +55. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json +56. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json +57. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json +58. `3680` SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json +59. `3681` SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json +60. `3682` SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json +61. `3683` SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json +62. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +63. `1B7A` MUST allow map {extensions} parameter when accepting application/json +64. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json +65. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +66. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +67. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +68. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +69. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +70. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +71. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +72. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +73. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +74. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +75. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 1. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -113,7 +113,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD use 200 status code on document parsing failure when accepting application/json
+ 2. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json
Response status code is not 200 @@ -140,7 +140,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. SHOULD use 200 status code on document validation failure when accepting application/json
+ 3. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json
Response status code is not 200 diff --git a/implementations/postgraphile/README.md b/implementations/postgraphile/README.md index f2a8ec60..267c6813 100644 --- a/implementations/postgraphile/README.md +++ b/implementations/postgraphile/README.md @@ -7,56 +7,56 @@ _* This report was auto-generated by graphql-http_ - ⚠️ **33** warnings (optional) ## Passing -1. MUST accept application/json and match the content-type -2. SHOULD accept \*/\* and use application/json for the content-type -3. MUST use utf-8 encoding when responding -4. MUST accept utf-8 encoded request -5. MUST assume utf-8 in request if encoding is unspecified -6. MUST accept POST requests -7. MAY NOT allow executing mutations on GET requests -8. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -9. MUST accept application/json POST requests -10. MUST require a request body on POST -11. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json -12. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json -13. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json -14. SHOULD allow string {query} parameter when accepting application/graphql-response+json -15. MUST allow string {query} parameter when accepting application/json -16. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json -17. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json -18. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json -19. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json -20. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json -21. MUST allow string {operationName} parameter when accepting application/json -22. SHOULD allow null {variables} parameter when accepting application/graphql-response+json -23. MUST allow null {variables} parameter when accepting application/json -24. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json -25. MUST allow null {operationName} parameter when accepting application/json -26. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json -27. MUST allow null {extensions} parameter when accepting application/json -28. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json -29. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json -30. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json -31. SHOULD allow map {variables} parameter when accepting application/graphql-response+json -32. MUST allow map {variables} parameter when accepting application/json -33. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json -34. MUST allow map {extensions} parameter when accepting application/json -35. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -36. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json -37. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -38. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json -39. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json -40. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -41. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json -42. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json -43. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json -44. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json -45. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json +1. `4655` MUST accept application/json and match the content-type +2. `47DE` SHOULD accept \*/\* and use application/json for the content-type +3. `82A3` MUST use utf-8 encoding when responding +4. `BF61` MUST accept utf-8 encoded request +5. `78D5` MUST assume utf-8 in request if encoding is unspecified +6. `2C94` MUST accept POST requests +7. `9C48` MAY NOT allow executing mutations on GET requests +8. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +9. `03D4` MUST accept application/json POST requests +10. `7267` MUST require a request body on POST +11. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json +12. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json +13. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json +14. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json +15. `13EE` MUST allow string {query} parameter when accepting application/json +16. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json +17. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json +18. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json +19. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json +20. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json +21. `B8B3` MUST allow string {operationName} parameter when accepting application/json +22. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json +23. `0220` MUST allow null {variables} parameter when accepting application/json +24. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json +25. `0221` MUST allow null {operationName} parameter when accepting application/json +26. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json +27. `0222` MUST allow null {extensions} parameter when accepting application/json +28. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json +29. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json +30. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json +31. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json +32. `28B9` MUST allow map {variables} parameter when accepting application/json +33. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json +34. `1B7A` MUST allow map {extensions} parameter when accepting application/json +35. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +36. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json +37. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +38. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json +39. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json +40. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +41. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json +42. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json +43. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +44. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json +45. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD accept application/graphql-response+json and match the content-type
+ 1. `22EB` SHOULD accept application/graphql-response+json and match the content-type
Response header content-type does not contain application/graphql-response+json @@ -80,7 +80,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD assume application/json content-type when accept is missing
+ 2. `80D8` SHOULD assume application/json content-type when accept is missing
Response status code is not 200 @@ -107,7 +107,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. MAY accept application/x-www-form-urlencoded formatted GET requests
+ 3. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests
Response status code is not 200 @@ -134,7 +134,7 @@ The server _SHOULD_ support these, but is not required. ```
- 4. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
+ 4. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
Response status code is not 200 @@ -160,7 +160,7 @@ The server _SHOULD_ support these, but is not required. ```
- 5. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json
+ 5. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -186,7 +186,7 @@ The server _SHOULD_ support these, but is not required. ```
- 6. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json
+ 6. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -212,7 +212,7 @@ The server _SHOULD_ support these, but is not required. ```
- 7. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
+ 7. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
Response status code is not 200 @@ -238,7 +238,7 @@ The server _SHOULD_ support these, but is not required. ```
- 8. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
+ 8. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
Response status code is not 200 @@ -264,7 +264,7 @@ The server _SHOULD_ support these, but is not required. ```
- 9. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
+ 9. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
Response status code is not 200 @@ -290,7 +290,7 @@ The server _SHOULD_ support these, but is not required. ```
- 10. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
+ 10. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
Response status code is not 200 @@ -316,7 +316,7 @@ The server _SHOULD_ support these, but is not required. ```
- 11. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
+ 11. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
Response status code is not 200 @@ -342,7 +342,7 @@ The server _SHOULD_ support these, but is not required. ```
- 12. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
+ 12. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
Response status code is not 200 @@ -368,7 +368,7 @@ The server _SHOULD_ support these, but is not required. ```
- 13. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
+ 13. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
Response status code is not 200 @@ -394,7 +394,7 @@ The server _SHOULD_ support these, but is not required. ```
- 14. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
+ 14. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
Response status code is not 200 @@ -420,7 +420,7 @@ The server _SHOULD_ support these, but is not required. ```
- 15. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
+ 15. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -444,7 +444,7 @@ The server _SHOULD_ support these, but is not required. ```
- 16. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
+ 16. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200 @@ -470,7 +470,7 @@ The server _SHOULD_ support these, but is not required. ```
- 17. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
+ 17. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response status code is not 200 @@ -496,7 +496,7 @@ The server _SHOULD_ support these, but is not required. ```
- 18. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
+ 18. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response status code is not 200 @@ -522,7 +522,7 @@ The server _SHOULD_ support these, but is not required. ```
- 19. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
+ 19. `F053` 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" @@ -542,7 +542,7 @@ The server _SHOULD_ support these, but is not required. ```
- 20. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json
+ 20. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json
Response status code is not 200 @@ -569,7 +569,7 @@ The server _SHOULD_ support these, but is not required. ```
- 21. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
+ 21. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
Response status code is not 200 @@ -596,7 +596,7 @@ The server _SHOULD_ support these, but is not required. ```
- 22. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
+ 22. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -620,7 +620,7 @@ The server _SHOULD_ support these, but is not required. ```
- 23. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
+ 23. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -644,7 +644,7 @@ The server _SHOULD_ support these, but is not required. ```
- 24. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
+ 24. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -668,7 +668,7 @@ The server _SHOULD_ support these, but is not required. ```
- 25. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
+ 25. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -692,7 +692,7 @@ The server _SHOULD_ support these, but is not required. ```
- 26. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
+ 26. `3680` 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" @@ -712,7 +712,7 @@ The server _SHOULD_ support these, but is not required. ```
- 27. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
+ 27. `3681` 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" @@ -732,7 +732,7 @@ The server _SHOULD_ support these, but is not required. ```
- 28. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
+ 28. `3682` 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" @@ -752,7 +752,7 @@ The server _SHOULD_ support these, but is not required. ```
- 29. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
+ 29. `3683` 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" @@ -772,7 +772,7 @@ The server _SHOULD_ support these, but is not required. ```
- 30. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 30. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -798,7 +798,7 @@ The server _SHOULD_ support these, but is not required. ```
- 31. SHOULD use 200 status code if parameters are invalid when accepting application/json
+ 31. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json
Response status code is not 200 @@ -824,7 +824,7 @@ The server _SHOULD_ support these, but is not required. ```
- 32. SHOULD use 200 status code on document parsing failure when accepting application/json
+ 32. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json
Response status code is not 200 @@ -856,7 +856,7 @@ The server _SHOULD_ support these, but is not required. ```
- 33. SHOULD use 200 status code on document validation failure when accepting application/json
+ 33. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json
Response status code is not 200 diff --git a/implementations/thegraph/README.md b/implementations/thegraph/README.md index d93db9fe..38d8495c 100644 --- a/implementations/thegraph/README.md +++ b/implementations/thegraph/README.md @@ -8,18 +8,18 @@ _* This report was auto-generated by graphql-http_ - ❌ **14** errors (required) ## Passing -1. MAY accept application/x-www-form-urlencoded formatted GET requests -2. SHOULD respond with 4xx status code if content-type is not supplied on POST requests -3. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json -4. SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json -5. SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json -6. SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json -7. SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json +1. `5A70` MAY accept application/x-www-form-urlencoded formatted GET requests +2. `9ABE` SHOULD respond with 4xx status code if content-type is not supplied on POST requests +3. `D6D5` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json +4. `60AA` SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json +5. `3E36` SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json +6. `865D` SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json +7. `51FE` SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json ## Warnings The server _SHOULD_ support these, but is not required. - 1. SHOULD accept application/graphql-response+json and match the content-type
+ 1. `22EB` SHOULD accept application/graphql-response+json and match the content-type
Response status code is not 200 @@ -46,7 +46,7 @@ The server _SHOULD_ support these, but is not required. ```
- 2. SHOULD accept \*/\* and use application/json for the content-type
+ 2. `47DE` SHOULD accept \*/\* and use application/json for the content-type
Response status code is not 200 @@ -73,7 +73,7 @@ The server _SHOULD_ support these, but is not required. ```
- 3. SHOULD assume application/json content-type when accept is missing
+ 3. `80D8` SHOULD assume application/json content-type when accept is missing
Response header content-type does not contain application/json @@ -101,7 +101,7 @@ The server _SHOULD_ support these, but is not required. ```
- 4. MAY NOT allow executing mutations on GET requests
+ 4. `9C48` MAY NOT allow executing mutations on GET requests
Response status is not between 400 and 499 @@ -129,7 +129,7 @@ The server _SHOULD_ support these, but is not required. ```
- 5. SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json
+ 5. `6610` SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -156,7 +156,7 @@ The server _SHOULD_ support these, but is not required. ```
- 6. SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
+ 6. `3715` SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json
Response status code is not 200 @@ -183,7 +183,7 @@ The server _SHOULD_ support these, but is not required. ```
- 7. SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json
+ 7. `4F50` SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -210,7 +210,7 @@ The server _SHOULD_ support these, but is not required. ```
- 8. SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json
+ 8. `4F51` SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -237,7 +237,7 @@ The server _SHOULD_ support these, but is not required. ```
- 9. SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json
+ 9. `4F52` SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -264,7 +264,7 @@ The server _SHOULD_ support these, but is not required. ```
- 10. SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json
+ 10. `4F53` SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -291,7 +291,7 @@ The server _SHOULD_ support these, but is not required. ```
- 11. SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
+ 11. `9FE0` SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json
Response status code is not 200 @@ -318,7 +318,7 @@ The server _SHOULD_ support these, but is not required. ```
- 12. SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
+ 12. `9FE1` SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json
Response status code is not 200 @@ -345,7 +345,7 @@ The server _SHOULD_ support these, but is not required. ```
- 13. SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
+ 13. `9FE2` SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json
Response status code is not 200 @@ -372,7 +372,7 @@ The server _SHOULD_ support these, but is not required. ```
- 14. SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
+ 14. `9FE3` SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json
Response status code is not 200 @@ -399,7 +399,7 @@ The server _SHOULD_ support these, but is not required. ```
- 15. SHOULD allow string {query} parameter when accepting application/graphql-response+json
+ 15. `34A2` SHOULD allow string {query} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -426,7 +426,7 @@ The server _SHOULD_ support these, but is not required. ```
- 16. SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json
+ 16. `E3E0` SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -453,7 +453,7 @@ The server _SHOULD_ support these, but is not required. ```
- 17. SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
+ 17. `E3E1` SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -480,7 +480,7 @@ The server _SHOULD_ support these, but is not required. ```
- 18. SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
+ 18. `E3E2` SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -507,7 +507,7 @@ The server _SHOULD_ support these, but is not required. ```
- 19. SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json
+ 19. `E3E3` SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -534,7 +534,7 @@ The server _SHOULD_ support these, but is not required. ```
- 20. SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
+ 20. `FB90` SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json
Response status code is not 200 @@ -561,7 +561,7 @@ The server _SHOULD_ support these, but is not required. ```
- 21. SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
+ 21. `FB91` SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json
Response status code is not 200 @@ -588,7 +588,7 @@ The server _SHOULD_ support these, but is not required. ```
- 22. SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
+ 22. `FB92` SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json
Response status code is not 200 @@ -615,7 +615,7 @@ The server _SHOULD_ support these, but is not required. ```
- 23. SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
+ 23. `FB93` SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json
Response status code is not 200 @@ -642,7 +642,7 @@ The server _SHOULD_ support these, but is not required. ```
- 24. SHOULD allow string {operationName} parameter when accepting application/graphql-response+json
+ 24. `8161` SHOULD allow string {operationName} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -669,7 +669,7 @@ The server _SHOULD_ support these, but is not required. ```
- 25. SHOULD allow null {variables} parameter when accepting application/graphql-response+json
+ 25. `94B0` SHOULD allow null {variables} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -696,7 +696,7 @@ The server _SHOULD_ support these, but is not required. ```
- 26. SHOULD allow null {operationName} parameter when accepting application/graphql-response+json
+ 26. `94B1` SHOULD allow null {operationName} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -723,7 +723,7 @@ The server _SHOULD_ support these, but is not required. ```
- 27. SHOULD allow null {extensions} parameter when accepting application/graphql-response+json
+ 27. `94B2` SHOULD allow null {extensions} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -750,7 +750,7 @@ The server _SHOULD_ support these, but is not required. ```
- 28. SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json
+ 28. `69B0` SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -777,7 +777,7 @@ The server _SHOULD_ support these, but is not required. ```
- 29. SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
+ 29. `69B1` SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -804,7 +804,7 @@ The server _SHOULD_ support these, but is not required. ```
- 30. SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
+ 30. `69B2` SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -831,7 +831,7 @@ The server _SHOULD_ support these, but is not required. ```
- 31. SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
+ 31. `69B3` SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -858,7 +858,7 @@ The server _SHOULD_ support these, but is not required. ```
- 32. SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
+ 32. `F050` SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json
Response status code is not 200 @@ -885,7 +885,7 @@ The server _SHOULD_ support these, but is not required. ```
- 33. SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
+ 33. `F051` SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json
Response status code is not 200 @@ -912,7 +912,7 @@ The server _SHOULD_ support these, but is not required. ```
- 34. SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
+ 34. `F052` SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json
Response status code is not 200 @@ -939,7 +939,7 @@ The server _SHOULD_ support these, but is not required. ```
- 35. SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
+ 35. `F053` SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json
Response status code is not 200 @@ -966,7 +966,7 @@ The server _SHOULD_ support these, but is not required. ```
- 36. SHOULD allow map {variables} parameter when accepting application/graphql-response+json
+ 36. `2EA1` SHOULD allow map {variables} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -993,7 +993,7 @@ The server _SHOULD_ support these, but is not required. ```
- 37. MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
+ 37. `6A70` MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json
Response body is not valid JSON @@ -1021,7 +1021,7 @@ The server _SHOULD_ support these, but is not required. ```
- 38. SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
+ 38. `9040` SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -1048,7 +1048,7 @@ The server _SHOULD_ support these, but is not required. ```
- 39. SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
+ 39. `9041` SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -1075,7 +1075,7 @@ The server _SHOULD_ support these, but is not required. ```
- 40. SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
+ 40. `9042` SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -1102,7 +1102,7 @@ The server _SHOULD_ support these, but is not required. ```
- 41. SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
+ 41. `9043` SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json
Response status code is not 400 @@ -1129,7 +1129,7 @@ The server _SHOULD_ support these, but is not required. ```
- 42. SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
+ 42. `3680` SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json
Response status code is not 200 @@ -1156,7 +1156,7 @@ The server _SHOULD_ support these, but is not required. ```
- 43. SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
+ 43. `3681` SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json
Response status code is not 200 @@ -1183,7 +1183,7 @@ The server _SHOULD_ support these, but is not required. ```
- 44. SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
+ 44. `3682` SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json
Response status code is not 200 @@ -1210,7 +1210,7 @@ The server _SHOULD_ support these, but is not required. ```
- 45. SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
+ 45. `3683` SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json
Response status code is not 200 @@ -1237,7 +1237,7 @@ The server _SHOULD_ support these, but is not required. ```
- 46. SHOULD allow map {extensions} parameter when accepting application/graphql-response+json
+ 46. `428F` SHOULD allow map {extensions} parameter when accepting application/graphql-response+json
Response status code is not 200 @@ -1264,7 +1264,7 @@ The server _SHOULD_ support these, but is not required. ```
- 47. SHOULD use 200 status code on JSON parsing failure when accepting application/json
+ 47. `D477` SHOULD use 200 status code on JSON parsing failure when accepting application/json
Response status code is not 200 @@ -1291,7 +1291,7 @@ The server _SHOULD_ support these, but is not required. ```
- 48. SHOULD use 200 status code if parameters are invalid when accepting application/json
+ 48. `F5AF` SHOULD use 200 status code if parameters are invalid when accepting application/json
Response status code is not 200 @@ -1318,7 +1318,7 @@ The server _SHOULD_ support these, but is not required. ```
- 49. SHOULD use 200 status code on document parsing failure when accepting application/json
+ 49. `572B` SHOULD use 200 status code on document parsing failure when accepting application/json
Response status code is not 200 @@ -1345,7 +1345,7 @@ The server _SHOULD_ support these, but is not required. ```
- 50. SHOULD use 200 status code on document validation failure when accepting application/json
+ 50. `FDE2` SHOULD use 200 status code on document validation failure when accepting application/json
Response status code is not 200 @@ -1372,7 +1372,7 @@ The server _SHOULD_ support these, but is not required. ```
- 51. SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json
+ 51. `2163` SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json
Response status code is not 400 @@ -1399,7 +1399,7 @@ The server _SHOULD_ support these, but is not required. ```
- 52. SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json
+ 52. `17C5` SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json
Response status code is not 400 @@ -1426,7 +1426,7 @@ The server _SHOULD_ support these, but is not required. ```
- 53. SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json
+ 53. `34D6` SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json
Response body is not valid JSON @@ -1453,7 +1453,7 @@ The server _SHOULD_ support these, but is not required. ```
- 54. SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json
+ 54. `556A` SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json
Response status code is not 400 @@ -1480,7 +1480,7 @@ The server _SHOULD_ support these, but is not required. ```
- 55. SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json
+ 55. `D586` SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json
Response body is not valid JSON @@ -1507,7 +1507,7 @@ The server _SHOULD_ support these, but is not required. ```
- 56. SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json
+ 56. `74FF` SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json
Response status code is not 400 @@ -1534,7 +1534,7 @@ The server _SHOULD_ support these, but is not required. ```
- 57. SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
+ 57. `5E5B` SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json
Response body is not valid JSON @@ -1565,7 +1565,7 @@ The server _SHOULD_ support these, but is not required. ## Errors The server _MUST_ support these. - 1. MUST accept application/json and match the content-type
+ 1. `4655` MUST accept application/json and match the content-type
Response status code is not 200 @@ -1592,7 +1592,7 @@ The server _MUST_ support these. ```
- 2. MUST use utf-8 encoding when responding
+ 2. `82A3` MUST use utf-8 encoding when responding
Response status code is not 200 @@ -1619,7 +1619,7 @@ The server _MUST_ support these. ```
- 3. MUST accept utf-8 encoded request
+ 3. `BF61` MUST accept utf-8 encoded request
Response status code is not 200 @@ -1646,7 +1646,7 @@ The server _MUST_ support these. ```
- 4. MUST assume utf-8 in request if encoding is unspecified
+ 4. `78D5` MUST assume utf-8 in request if encoding is unspecified
Response status code is not 200 @@ -1673,7 +1673,7 @@ The server _MUST_ support these. ```
- 5. MUST accept POST requests
+ 5. `2C94` MUST accept POST requests
Response status code is not 200 @@ -1700,7 +1700,7 @@ The server _MUST_ support these. ```
- 6. MUST accept application/json POST requests
+ 6. `03D4` MUST accept application/json POST requests
Response status code is not 200 @@ -1727,7 +1727,7 @@ The server _MUST_ support these. ```
- 7. MUST require a request body on POST
+ 7. `7267` MUST require a request body on POST
Response status code is not 400 @@ -1754,7 +1754,7 @@ The server _MUST_ support these. ```
- 8. MUST allow string {query} parameter when accepting application/json
+ 8. `13EE` MUST allow string {query} parameter when accepting application/json
Response status code is not 200 @@ -1781,7 +1781,7 @@ The server _MUST_ support these. ```
- 9. MUST allow string {operationName} parameter when accepting application/json
+ 9. `B8B3` MUST allow string {operationName} parameter when accepting application/json
Response status code is not 200 @@ -1808,7 +1808,7 @@ The server _MUST_ support these. ```
- 10. MUST allow null {variables} parameter when accepting application/json
+ 10. `0220` MUST allow null {variables} parameter when accepting application/json
Response status code is not 200 @@ -1835,7 +1835,7 @@ The server _MUST_ support these. ```
- 11. MUST allow null {operationName} parameter when accepting application/json
+ 11. `0221` MUST allow null {operationName} parameter when accepting application/json
Response status code is not 200 @@ -1862,7 +1862,7 @@ The server _MUST_ support these. ```
- 12. MUST allow null {extensions} parameter when accepting application/json
+ 12. `0222` MUST allow null {extensions} parameter when accepting application/json
Response status code is not 200 @@ -1889,7 +1889,7 @@ The server _MUST_ support these. ```
- 13. MUST allow map {variables} parameter when accepting application/json
+ 13. `28B9` MUST allow map {variables} parameter when accepting application/json
Response status code is not 200 @@ -1916,7 +1916,7 @@ The server _MUST_ support these. ```
- 14. MUST allow map {extensions} parameter when accepting application/json
+ 14. `1B7A` MUST allow map {extensions} parameter when accepting application/json
Response status code is not 200 diff --git a/scripts/audit-implementation.mjs b/scripts/audit-implementation.mjs index 0d088264..25712355 100644 --- a/scripts/audit-implementation.mjs +++ b/scripts/audit-implementation.mjs @@ -123,7 +123,7 @@ async function createReport(results) { if (grouped.ok.length) { report += `## Passing\n`; for (const [i, result] of grouped.ok.entries()) { - report += `${i + 1}. ${escapeMarkdown(result.name)}\n`; + report += `${i + 1}. \`${result.id}\` ${escapeMarkdown(result.name)}\n`; } report += '\n'; } @@ -164,7 +164,9 @@ async function createReport(results) { async function printAuditFail(result, i) { let indent = ' '; let report = ''; - report += indent + `${i + 1}. ${escapeMarkdown(result.name)}
\n\n`; + report += + indent + + `${i + 1}. \`${result.id}\` ${escapeMarkdown(result.name)}
\n\n`; indent += indent + ' '; // double the indent for details report += indent + '
\n'; report += indent + `${truncate(result.reason)}\n`; diff --git a/src/__tests__/__snapshots__/audits.ts.snap b/src/__tests__/__snapshots__/audits.ts.snap new file mode 100644 index 00000000..c99a37ff --- /dev/null +++ b/src/__tests__/__snapshots__/audits.ts.snap @@ -0,0 +1,318 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should not change globally unique audit ids 1`] = ` +[ + { + "id": "22EB", + "name": "SHOULD accept application/graphql-response+json and match the content-type", + }, + { + "id": "4655", + "name": "MUST accept application/json and match the content-type", + }, + { + "id": "47DE", + "name": "SHOULD accept */* and use application/json for the content-type", + }, + { + "id": "80D8", + "name": "SHOULD assume application/json content-type when accept is missing", + }, + { + "id": "82A3", + "name": "MUST use utf-8 encoding when responding", + }, + { + "id": "BF61", + "name": "MUST accept utf-8 encoded request", + }, + { + "id": "78D5", + "name": "MUST assume utf-8 in request if encoding is unspecified", + }, + { + "id": "2C94", + "name": "MUST accept POST requests", + }, + { + "id": "5A70", + "name": "MAY accept application/x-www-form-urlencoded formatted GET requests", + }, + { + "id": "9C48", + "name": "MAY NOT allow executing mutations on GET requests", + }, + { + "id": "9ABE", + "name": "SHOULD respond with 4xx status code if content-type is not supplied on POST requests", + }, + { + "id": "03D4", + "name": "MUST accept application/json POST requests", + }, + { + "id": "7267", + "name": "MUST require a request body on POST", + }, + { + "id": "6610", + "name": "SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json", + }, + { + "id": "3715", + "name": "SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json", + }, + { + "id": "4F50", + "name": "SHOULD use 400 status code on object {query} parameter when accepting application/graphql-response+json", + }, + { + "id": "4F51", + "name": "SHOULD use 400 status code on number {query} parameter when accepting application/graphql-response+json", + }, + { + "id": "4F52", + "name": "SHOULD use 400 status code on boolean {query} parameter when accepting application/graphql-response+json", + }, + { + "id": "4F53", + "name": "SHOULD use 400 status code on array {query} parameter when accepting application/graphql-response+json", + }, + { + "id": "9FE0", + "name": "SHOULD use 200 status code with errors field on object {query} parameter when accepting application/json", + }, + { + "id": "9FE1", + "name": "SHOULD use 200 status code with errors field on number {query} parameter when accepting application/json", + }, + { + "id": "9FE2", + "name": "SHOULD use 200 status code with errors field on boolean {query} parameter when accepting application/json", + }, + { + "id": "9FE3", + "name": "SHOULD use 200 status code with errors field on array {query} parameter when accepting application/json", + }, + { + "id": "34A2", + "name": "SHOULD allow string {query} parameter when accepting application/graphql-response+json", + }, + { + "id": "13EE", + "name": "MUST allow string {query} parameter when accepting application/json", + }, + { + "id": "E3E0", + "name": "SHOULD use 400 status code on object {operationName} parameter when accepting application/graphql-response+json", + }, + { + "id": "E3E1", + "name": "SHOULD use 400 status code on number {operationName} parameter when accepting application/graphql-response+json", + }, + { + "id": "E3E2", + "name": "SHOULD use 400 status code on boolean {operationName} parameter when accepting application/graphql-response+json", + }, + { + "id": "E3E3", + "name": "SHOULD use 400 status code on array {operationName} parameter when accepting application/graphql-response+json", + }, + { + "id": "FB90", + "name": "SHOULD use 200 status code with errors field on object {operationName} parameter when accepting application/json", + }, + { + "id": "FB91", + "name": "SHOULD use 200 status code with errors field on number {operationName} parameter when accepting application/json", + }, + { + "id": "FB92", + "name": "SHOULD use 200 status code with errors field on boolean {operationName} parameter when accepting application/json", + }, + { + "id": "FB93", + "name": "SHOULD use 200 status code with errors field on array {operationName} parameter when accepting application/json", + }, + { + "id": "8161", + "name": "SHOULD allow string {operationName} parameter when accepting application/graphql-response+json", + }, + { + "id": "B8B3", + "name": "MUST allow string {operationName} parameter when accepting application/json", + }, + { + "id": "94B0", + "name": "SHOULD allow null {variables} parameter when accepting application/graphql-response+json", + }, + { + "id": "0220", + "name": "MUST allow null {variables} parameter when accepting application/json", + }, + { + "id": "94B1", + "name": "SHOULD allow null {operationName} parameter when accepting application/graphql-response+json", + }, + { + "id": "0221", + "name": "MUST allow null {operationName} parameter when accepting application/json", + }, + { + "id": "94B2", + "name": "SHOULD allow null {extensions} parameter when accepting application/graphql-response+json", + }, + { + "id": "0222", + "name": "MUST allow null {extensions} parameter when accepting application/json", + }, + { + "id": "69B0", + "name": "SHOULD use 400 status code on string {variables} parameter when accepting application/graphql-response+json", + }, + { + "id": "69B1", + "name": "SHOULD use 400 status code on number {variables} parameter when accepting application/graphql-response+json", + }, + { + "id": "69B2", + "name": "SHOULD use 400 status code on boolean {variables} parameter when accepting application/graphql-response+json", + }, + { + "id": "69B3", + "name": "SHOULD use 400 status code on array {variables} parameter when accepting application/graphql-response+json", + }, + { + "id": "F050", + "name": "SHOULD use 200 status code with errors field on string {variables} parameter when accepting application/json", + }, + { + "id": "F051", + "name": "SHOULD use 200 status code with errors field on number {variables} parameter when accepting application/json", + }, + { + "id": "F052", + "name": "SHOULD use 200 status code with errors field on boolean {variables} parameter when accepting application/json", + }, + { + "id": "F053", + "name": "SHOULD use 200 status code with errors field on array {variables} parameter when accepting application/json", + }, + { + "id": "2EA1", + "name": "SHOULD allow map {variables} parameter when accepting application/graphql-response+json", + }, + { + "id": "28B9", + "name": "MUST allow map {variables} parameter when accepting application/json", + }, + { + "id": "D6D5", + "name": "MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json", + }, + { + "id": "6A70", + "name": "MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json", + }, + { + "id": "9040", + "name": "SHOULD use 400 status code on string {extensions} parameter when accepting application/graphql-response+json", + }, + { + "id": "9041", + "name": "SHOULD use 400 status code on number {extensions} parameter when accepting application/graphql-response+json", + }, + { + "id": "9042", + "name": "SHOULD use 400 status code on boolean {extensions} parameter when accepting application/graphql-response+json", + }, + { + "id": "9043", + "name": "SHOULD use 400 status code on array {extensions} parameter when accepting application/graphql-response+json", + }, + { + "id": "3680", + "name": "SHOULD use 200 status code with errors field on string {extensions} parameter when accepting application/json", + }, + { + "id": "3681", + "name": "SHOULD use 200 status code with errors field on number {extensions} parameter when accepting application/json", + }, + { + "id": "3682", + "name": "SHOULD use 200 status code with errors field on boolean {extensions} parameter when accepting application/json", + }, + { + "id": "3683", + "name": "SHOULD use 200 status code with errors field on array {extensions} parameter when accepting application/json", + }, + { + "id": "428F", + "name": "SHOULD allow map {extensions} parameter when accepting application/graphql-response+json", + }, + { + "id": "1B7A", + "name": "MUST allow map {extensions} parameter when accepting application/json", + }, + { + "id": "D477", + "name": "SHOULD use 200 status code on JSON parsing failure when accepting application/json", + }, + { + "id": "F5AF", + "name": "SHOULD use 200 status code if parameters are invalid when accepting application/json", + }, + { + "id": "572B", + "name": "SHOULD use 200 status code on document parsing failure when accepting application/json", + }, + { + "id": "FDE2", + "name": "SHOULD use 200 status code on document validation failure when accepting application/json", + }, + { + "id": "60AA", + "name": "SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json", + }, + { + "id": "2163", + "name": "SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json", + }, + { + "id": "3E36", + "name": "SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json", + }, + { + "id": "17C5", + "name": "SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json", + }, + { + "id": "34D6", + "name": "SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json", + }, + { + "id": "865D", + "name": "SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json", + }, + { + "id": "556A", + "name": "SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json", + }, + { + "id": "D586", + "name": "SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json", + }, + { + "id": "51FE", + "name": "SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json", + }, + { + "id": "74FF", + "name": "SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json", + }, + { + "id": "5E5B", + "name": "SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json", + }, +] +`; diff --git a/src/__tests__/audits.ts b/src/__tests__/audits.ts new file mode 100644 index 00000000..194f2cc4 --- /dev/null +++ b/src/__tests__/audits.ts @@ -0,0 +1,30 @@ +import { Audit, serverAudits } from '../audits'; + +it('should have globally unique audit ids', () => { + const ids: string[] = []; + + for (const audit of serverAudits({ + url: 'http://localhost', + fetchFn: () => { + // noop + }, + })) { + expect(ids).not.toContain(audit.id); + ids.push(audit.id); + } +}); + +it('should not change globally unique audit ids', () => { + const audits: Omit[] = []; + + serverAudits({ + url: 'http://localhost', + fetchFn: () => { + // noop + }, + }).forEach(({ fn, ...audit }) => audits.push(audit)); + + // update snapshot if new audits are added or deleted, + // but existing ones SHOULD NOT CHANGE semantically + expect(audits).toMatchSnapshot(); +}); diff --git a/src/audits/common.ts b/src/audits/common.ts index 7fa15e86..7cf01950 100644 --- a/src/audits/common.ts +++ b/src/audits/common.ts @@ -26,6 +26,11 @@ export type AuditName = `${AuditRequirement} ${string}`; * @category Audits */ export interface Audit { + /** + * Uniquely represents the audit. Helps with pinning audits + * without depending on the human readable audit name. + */ + id: string; name: AuditName; fn: () => Promise; } @@ -36,6 +41,11 @@ export interface Audit { * @category Audits */ export interface AuditOk { + /** + * Uniquely represents the passing audit. Helps with pinning audits + * without depending on the human readable audit name. + */ + id: string; name: AuditName; status: 'ok'; } @@ -51,6 +61,11 @@ export interface AuditOk { * @category Audits */ export interface AuditFail { + /** + * Uniquely represents the failing audit. Helps with pinning audits + * without depending on the human readable audit name. + */ + id: string; name: AuditName; status: 'warn' | 'error'; reason: string; diff --git a/src/audits/server.ts b/src/audits/server.ts index 35658006..01d6a926 100644 --- a/src/audits/server.ts +++ b/src/audits/server.ts @@ -41,6 +41,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { // Media Types audit( // TODO: convert to MUST after watershed + '22EB', 'SHOULD accept application/graphql-response+json and match the content-type', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -58,6 +59,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '4655', 'MUST accept application/json and match the content-type', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -73,6 +75,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '47DE', 'SHOULD accept */* and use application/json for the content-type', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -88,6 +91,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '80D8', 'SHOULD assume application/json content-type when accept is missing', async () => { const url = new URL(await getUrl(opts.url)); @@ -98,7 +102,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ressert(res).header('content-type').toContain('application/json'); }, ), - audit('MUST use utf-8 encoding when responding', async () => { + audit('82A3', 'MUST use utf-8 encoding when responding', async () => { const res = await fetchFn(await getUrl(opts.url), { method: 'POST', headers: { @@ -115,7 +119,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { throw new AuditError(res, 'Response body is not UTF-8 encoded'); } }), - audit('MUST accept utf-8 encoded request', async () => { + audit('BF61', 'MUST accept utf-8 encoded request', async () => { const res = await fetchFn(await getUrl(opts.url), { method: 'POST', headers: { @@ -127,6 +131,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ressert(res).status.toBe(200); }), audit( + '78D5', 'MUST assume utf-8 in request if encoding is unspecified', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -141,7 +146,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), // Request - audit('MUST accept POST requests', async () => { + audit('2C94', 'MUST accept POST requests', async () => { const res = await fetchFn(await getUrl(opts.url), { method: 'POST', headers: { 'content-type': 'application/json' }, @@ -150,6 +155,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ressert(res).status.toBe(200); }), audit( + '5A70', 'MAY accept application/x-www-form-urlencoded formatted GET requests', async () => { const url = new URL(await getUrl(opts.url)); @@ -161,19 +167,24 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), // Request GET // TODO: this is a MUST if the server supports GET requests - audit('MAY NOT allow executing mutations on GET requests', async () => { - const url = new URL(await getUrl(opts.url)); - url.searchParams.set('query', 'mutation { __typename }'); + audit( + '9C48', + 'MAY NOT allow executing mutations on GET requests', + async () => { + const url = new URL(await getUrl(opts.url)); + url.searchParams.set('query', 'mutation { __typename }'); - const res = await fetchFn(url.toString(), { - headers: { - accept: 'application/graphql-response+json', - }, - }); - ressert(res).status.toBeBetween(400, 499); - }), + const res = await fetchFn(url.toString(), { + headers: { + accept: 'application/graphql-response+json', + }, + }); + ressert(res).status.toBeBetween(400, 499); + }, + ), // Request POST audit( + '9ABE', 'SHOULD respond with 4xx status code if content-type is not supplied on POST requests', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -182,7 +193,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ressert(res).status.toBeBetween(400, 499); }, ), - audit('MUST accept application/json POST requests', async () => { + audit('03D4', 'MUST accept application/json POST requests', async () => { const res = await fetchFn(await getUrl(opts.url), { method: 'POST', headers: { 'content-type': 'application/json' }, @@ -190,7 +201,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }); ressert(res).status.toBe(200); }), - audit('MUST require a request body on POST', async () => { + audit('7267', 'MUST require a request body on POST', async () => { const res = await fetchFn(await getUrl(opts.url), { method: 'POST', headers: { 'content-type': 'application/json' }, @@ -204,6 +215,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { // Request Parameters audit( // TODO: convert to MUST after watershed + '6610', 'SHOULD use 400 status code on missing {query} parameter when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -218,6 +230,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '3715', 'SHOULD use 200 status code with errors field on missing {query} parameter when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -232,8 +245,9 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { await ressert(res).bodyAsExecutionResult.toHaveProperty('errors'); }, ), - ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid) => + ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid, index) => audit( + `4F5${index}`, // TODO: convert to MUST after watershed `SHOULD use 400 status code on ${extendedTypeof( invalid, @@ -253,8 +267,9 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), ), - ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid) => + ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid, index) => audit( + `9FE${index}`, `SHOULD use 200 status code with errors field on ${extendedTypeof( invalid, )} {query} parameter when accepting application/json`, @@ -276,6 +291,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), audit( // TODO: convert to MUST after watershed + '34A2', 'SHOULD allow string {query} parameter when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -292,6 +308,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '13EE', 'MUST allow string {query} parameter when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -308,8 +325,9 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { await ressert(res).bodyAsExecutionResult.notToHaveProperty('errors'); }, ), - ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid) => + ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid, index) => audit( + `E3E${index}`, // TODO: convert to MUST after watershed `SHOULD use 400 status code on ${extendedTypeof( invalid, @@ -330,8 +348,9 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), ), - ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid) => + ...[{ obj: 'ect' }, 0, false, ['array']].map((invalid, index) => audit( + `FB9${index}`, `SHOULD use 200 status code with errors field on ${extendedTypeof( invalid, )} {operationName} parameter when accepting application/json`, @@ -354,6 +373,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), audit( // TODO: convert to MUST after watershed + '8161', 'SHOULD allow string {operationName} parameter when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -371,6 +391,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + 'B8B3', 'MUST allow string {operationName} parameter when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -388,47 +409,56 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { await ressert(res).bodyAsExecutionResult.notToHaveProperty('errors'); }, ), - ...['variables', 'operationName', 'extensions'].flatMap((parameter) => [ - audit( - // TODO: convert to MUST after watershed - `SHOULD allow null {${parameter}} parameter when accepting application/graphql-response+json`, - async () => { - const res = await fetchFn(await getUrl(opts.url), { - method: 'POST', - headers: { - 'content-type': 'application/json', - accept: 'application/graphql-response+json', - }, - body: JSON.stringify({ - query: '{ __typename }', - [parameter]: null, - }), - }); - ressert(res).status.toBe(200); - await ressert(res).bodyAsExecutionResult.notToHaveProperty('errors'); - }, - ), - audit( - `MUST allow null {${parameter}} parameter when accepting application/json`, - async () => { - const res = await fetchFn(await getUrl(opts.url), { - method: 'POST', - headers: { - 'content-type': 'application/json', - accept: 'application/json', - }, - body: JSON.stringify({ - query: '{ __typename }', - [parameter]: null, - }), - }); - ressert(res).status.toBe(200); - await ressert(res).bodyAsExecutionResult.notToHaveProperty('errors'); - }, - ), - ]), - ...['string', 0, false, ['array']].map((invalid) => + ...['variables', 'operationName', 'extensions'].flatMap( + (parameter, index) => [ + audit( + `94B${index}`, + // TODO: convert to MUST after watershed + `SHOULD allow null {${parameter}} parameter when accepting application/graphql-response+json`, + async () => { + const res = await fetchFn(await getUrl(opts.url), { + method: 'POST', + headers: { + 'content-type': 'application/json', + accept: 'application/graphql-response+json', + }, + body: JSON.stringify({ + query: '{ __typename }', + [parameter]: null, + }), + }); + ressert(res).status.toBe(200); + await ressert(res).bodyAsExecutionResult.notToHaveProperty( + 'errors', + ); + }, + ), + audit( + `022${index}`, + `MUST allow null {${parameter}} parameter when accepting application/json`, + async () => { + const res = await fetchFn(await getUrl(opts.url), { + method: 'POST', + headers: { + 'content-type': 'application/json', + accept: 'application/json', + }, + body: JSON.stringify({ + query: '{ __typename }', + [parameter]: null, + }), + }); + ressert(res).status.toBe(200); + await ressert(res).bodyAsExecutionResult.notToHaveProperty( + 'errors', + ); + }, + ), + ], + ), + ...['string', 0, false, ['array']].map((invalid, index) => audit( + `69B${index}`, // TODO: convert to MUST after watershed `SHOULD use 400 status code on ${extendedTypeof( invalid, @@ -449,8 +479,9 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), ), - ...['string', 0, false, ['array']].map((invalid) => + ...['string', 0, false, ['array']].map((invalid, index) => audit( + `F05${index}`, `SHOULD use 200 status code with errors field on ${extendedTypeof( invalid, )} {variables} parameter when accepting application/json`, @@ -473,6 +504,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), audit( // TODO: convert to MUST after watershed + '2EA1', 'SHOULD allow map {variables} parameter when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -491,6 +523,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '28B9', 'MUST allow map {variables} parameter when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -510,6 +543,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + 'D6D5', 'MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+json', async () => { const url = new URL(await getUrl(opts.url)); @@ -528,6 +562,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '6A70', 'MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/json', async () => { const url = new URL(await getUrl(opts.url)); @@ -546,8 +581,9 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { await ressert(res).bodyAsExecutionResult.notToHaveProperty('errors'); }, ), - ...['string', 0, false, ['array']].map((invalid) => + ...['string', 0, false, ['array']].map((invalid, index) => audit( + `904${index}`, // TODO: convert to MUST after watershed `SHOULD use 400 status code on ${extendedTypeof( invalid, @@ -568,8 +604,9 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), ), - ...['string', 0, false, ['array']].map((invalid) => + ...['string', 0, false, ['array']].map((invalid, index) => audit( + `368${index}`, `SHOULD use 200 status code with errors field on ${extendedTypeof( invalid, )} {extensions} parameter when accepting application/json`, @@ -592,6 +629,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), audit( // TODO: convert to MUST after watershed + '428F', 'SHOULD allow map {extensions} parameter when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -609,6 +647,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '1B7A', 'MUST allow map {extensions} parameter when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -626,9 +665,10 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { await ressert(res).bodyAsExecutionResult.notToHaveProperty('errors'); }, ), - // TODO: audit('MUST accept a map for the {extensions} parameter'), + // TODO: audit('39AA', 'MUST accept a map for the {extensions} parameter'), // Response application/json audit( + 'D477', 'SHOULD use 200 status code on JSON parsing failure when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -643,6 +683,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + 'F5AF', 'SHOULD use 200 status code if parameters are invalid when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -659,6 +700,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '572B', 'SHOULD use 200 status code on document parsing failure when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -673,6 +715,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + 'FDE2', 'SHOULD use 200 status code on document validation failure when accepting application/json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -691,6 +734,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { // Response application/graphql-response+json audit( // TODO: convert to MUST after watershed + '60AA', 'SHOULD use 4xx or 5xx status codes on JSON parsing failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -705,6 +749,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '2163', 'SHOULD use 400 status code on JSON parsing failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -720,6 +765,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), audit( // TODO: convert to MUST after watershed + '3E36', 'SHOULD use 4xx or 5xx status codes if parameters are invalid when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -736,6 +782,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '17C5', 'SHOULD use 400 status code if parameters are invalid when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -752,6 +799,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '34D6', 'SHOULD not contain the data entry if parameters are invalid when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -769,6 +817,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), audit( // TODO: convert to MUST after watershed + '865D', 'SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -785,6 +834,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '556A', 'SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -801,6 +851,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + 'D586', 'SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -818,6 +869,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { ), audit( // TODO: convert to MUST after watershed + '51FE', 'SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -834,6 +886,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '74FF', 'SHOULD use 400 status code on document validation failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -850,6 +903,7 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), audit( + '5E5B', 'SHOULD not contain the data entry on document validation failure when accepting application/graphql-response+json', async () => { const res = await fetchFn(await getUrl(opts.url), { @@ -866,10 +920,10 @@ export function serverAudits(opts: ServerAuditOptions): Audit[] { }, ), // TODO: how to fail and have the data entry? - // audit('MUST use 2xx status code if response contains the data entry and it is not null when accepting application/graphql-response+json'), + // audit('EE52', 'MUST use 2xx status code if response contains the data entry and it is not null when accepting application/graphql-response+json'), // TODO: how to make an unauthorized request? // https://graphql.github.io/graphql-over-http/draft/#sel-EANNNDTAAEVBAAqqc - // audit('SHOULD use 401 or 403 status codes when the request is not permitted') + // audit('BC58', 'SHOULD use 401 or 403 status codes when the request is not permitted') ]; } diff --git a/src/audits/utils.ts b/src/audits/utils.ts index d5fe7406..d060d387 100644 --- a/src/audits/utils.ts +++ b/src/audits/utils.ts @@ -14,13 +14,19 @@ export * from '../utils'; * * @private */ -export function audit(name: AuditName, fn: () => Promise): Audit { +export function audit( + id: string, + name: AuditName, + fn: () => Promise, +): Audit { return { + id, name, fn: async () => { try { await fn(); return { + id, name, status: 'ok', }; @@ -30,6 +36,7 @@ export function audit(name: AuditName, fn: () => Promise): Audit { throw err; } return { + id, name, status: name.startsWith('MUST') ? // only failing MUSTs are considered errors