General HTTP guidance improvements
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- graphql
- Domain
- api, documentation
Research direction
Review the GraphQL over HTTP specification and the issue's proposed HTTP guidance, authentication, file handling, idempotency, error-code, and directive topics. First determine which proposals are in scope and whether the reference implementation must change. Done means an agreed scope is reflected in the specification and any corresponding reference-implementation coverage.
Written by the indexing model from the issue text.
Description
Hi,
I see that the proposed spec is supporting most HTTP status codes. Does this group have any opinion on the following;
1-Providing guidance in the specification to use appropriate HTTP codes, particularly around the HTTP error codes 4XX/5XX to describe the outcome, without being prescriptive about which error code should be used when, would be helpful.
2-Describing how to perform Authentication Authorization for GraphQL requests over HTTP would be helpful (even though AuthN and AuthZ can be outside the scope of this spec, specifying it so and having references to standard API protocols such as OpenId connect/OAuth2 would be useful).
3-Providing some guidance/making statements around File handling (It is ok to specify that this should be done outside the GraphQL request/response handling)
4-Providing some guidance around idempotent mutation operations over HTTP
5-In the reference implementation, covering all HTTP error codes would be helpful for the Implementor (at least the most widely used codes such as 400, 401, 403, 404, 409, 422, 405, 415, 413, 500, 503
Finally coming up with directives to describe HTTP protocol specific metadata in the schema would be helpful. Some example below;
1-Declaring authorization requirements at an Operation level (@authPolicy or @authorization directive?)
2-Declaring that a Mutation Operation is idempotent (@idempotent directive?)
3-Declaring the HTTP request and response headers in the schema (@httpRequestHeader and @httpResponseHeader directives?)
4-Declaring the status codes of each Operations (@httpStatusCodes directive?)
Non-HTTP
1-Declare the grouping of API operations by product capability (although not HTTP specific) (@tags directive?)
2-Declaring service level objectives for an operation (@slo directive?)
3-Declaring the unique operation id for each API operation (@operationId directive?)
Happy to discuss these and contribute back. Also happy to share things we did ay PayPal around these.
Thanks,
Jayadeba
- Dominant language
- JavaScript
- Stars
- 428
- Forks
- 70
- Avg merge
- 11m
- Merged PRs (30d)
- 4
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from graphql/graphql-over-http
-
Difficulty 3/5 Half a day Newbie friendliness 25/100
graphql/graphql-over-http#446 · 3 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
graphql/graphql-over-http#415 ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
graphql/graphql-over-http#392 · 4 reactions ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
graphql/graphql-over-http#242 · 8 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
graphql/graphql-over-http#216 · 15 comments · 1 reaction ·
All issues in graphql/graphql-over-http
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
feature request
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
openlayers/openlayers#17736 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
521xueweihan/HelloGitHub#4326 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Mintplex-Labs/anything-llm#7133 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day