From 2e139a50fc1467bbff65a6fdce56af1dbefa9a4c Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Fri, 22 Nov 2024 12:14:12 +0100 Subject: [PATCH 1/6] add 'implementation' to the Glossary --- rfcs/glossary/Appendix C -- Glossary.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rfcs/glossary/Appendix C -- Glossary.md b/rfcs/glossary/Appendix C -- Glossary.md index 6933b2d0..63c844d5 100644 --- a/rfcs/glossary/Appendix C -- Glossary.md +++ b/rfcs/glossary/Appendix C -- Glossary.md @@ -190,6 +190,16 @@ Example: **Definition**: a software capable of executing a GraphQL request and returning a GraphQL response according to this specification. +Examples: GitHub GraphQL API, Shopify GraphQL API, etc... + Note: The specification has no concept of client and server. While most services are implemented as servers, this is not a requirement and execution can happen anywhere as long as it conforms to the specification. + +### (GraphQL) implementation + +**Definition**: the software used to implement a service. Implementations may be +schema-first or code-first. + +Examples: graphql-js, Hot Chocolate, graphql-java, etc... + From f9bdf43c9a62a72146cf462f670b1df9591e9dcc Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Fri, 22 Nov 2024 13:00:06 +0100 Subject: [PATCH 2/6] add a note about what it means for an implementation to implement the spec --- rfcs/glossary/Appendix C -- Glossary.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rfcs/glossary/Appendix C -- Glossary.md b/rfcs/glossary/Appendix C -- Glossary.md index 63c844d5..5aa2fdcf 100644 --- a/rfcs/glossary/Appendix C -- Glossary.md +++ b/rfcs/glossary/Appendix C -- Glossary.md @@ -201,5 +201,10 @@ can happen anywhere as long as it conforms to the specification. **Definition**: the software used to implement a service. Implementations may be schema-first or code-first. +An implementation "implements" the specification if the services it produces +conforms to the GraphQL specification. An implementation may implement the +specification but not some of its optional features. Some implementations +implement the specification including all optional features. + Examples: graphql-js, Hot Chocolate, graphql-java, etc... From d9388559d969807d9650cafe526c5b02aaa7c40f Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Fri, 22 Nov 2024 13:40:05 +0100 Subject: [PATCH 3/6] simplify implementation --- rfcs/glossary/Appendix C -- Glossary.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/rfcs/glossary/Appendix C -- Glossary.md b/rfcs/glossary/Appendix C -- Glossary.md index 5aa2fdcf..8d096fb3 100644 --- a/rfcs/glossary/Appendix C -- Glossary.md +++ b/rfcs/glossary/Appendix C -- Glossary.md @@ -187,10 +187,13 @@ Example: ### (GraphQL) service -**Definition**: a software capable of executing a GraphQL request and returning -a GraphQL response according to this specification. +**Definition**: anything capable of executing a GraphQL request and returning +a GraphQL response conforming to the specification. -Examples: GitHub GraphQL API, Shopify GraphQL API, etc... +How the conformance is enforced is irrelevant. An HTTP cache can be a conforming +service. + +Examples: GitHub GraphQL API, Shopify GraphQL API, etc... Note: The specification has no concept of client and server. While most services are implemented as servers, this is not a requirement and execution @@ -198,13 +201,8 @@ can happen anywhere as long as it conforms to the specification. ### (GraphQL) implementation -**Definition**: the software used to implement a service. Implementations may be -schema-first or code-first. - -An implementation "implements" the specification if the services it produces -conforms to the GraphQL specification. An implementation may implement the -specification but not some of its optional features. Some implementations -implement the specification including all optional features. +**Definition**: a software that implements the algorithms and behaviour described +in the specification. Examples: graphql-js, Hot Chocolate, graphql-java, etc... From 63bdb4fdb598bfa2ff4961510cfee06ec64a45c6 Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Fri, 22 Nov 2024 13:49:11 +0100 Subject: [PATCH 4/6] Update rfcs/glossary/Appendix C -- Glossary.md Co-authored-by: Benjie --- rfcs/glossary/Appendix C -- Glossary.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rfcs/glossary/Appendix C -- Glossary.md b/rfcs/glossary/Appendix C -- Glossary.md index 8d096fb3..52975c7b 100644 --- a/rfcs/glossary/Appendix C -- Glossary.md +++ b/rfcs/glossary/Appendix C -- Glossary.md @@ -201,8 +201,8 @@ can happen anywhere as long as it conforms to the specification. ### (GraphQL) implementation -**Definition**: a software that implements the algorithms and behaviour described -in the specification. +**Definition**: software that implements the algorithms and behaviours described +in the GraphQL specification. Examples: graphql-js, Hot Chocolate, graphql-java, etc... From 7f97c044f6b649c4f6928d57d8d241e4b367ddb8 Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Fri, 22 Nov 2024 13:49:40 +0100 Subject: [PATCH 5/6] Update rfcs/glossary/Appendix C -- Glossary.md Co-authored-by: Benjie --- rfcs/glossary/Appendix C -- Glossary.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rfcs/glossary/Appendix C -- Glossary.md b/rfcs/glossary/Appendix C -- Glossary.md index 52975c7b..54701edf 100644 --- a/rfcs/glossary/Appendix C -- Glossary.md +++ b/rfcs/glossary/Appendix C -- Glossary.md @@ -190,8 +190,9 @@ Example: **Definition**: anything capable of executing a GraphQL request and returning a GraphQL response conforming to the specification. -How the conformance is enforced is irrelevant. An HTTP cache can be a conforming -service. +How the conformance is implemented is irrelevant. A cache in front of another +GraphQL service can itself be seen as a conforming service, assuming it does not +break any conformance requirements (e.g. on cache failure). Examples: GitHub GraphQL API, Shopify GraphQL API, etc... From f3eb30a23793df2b01533a9f30efde3f46966b3d Mon Sep 17 00:00:00 2001 From: Martin Bonnin Date: Sun, 24 Nov 2024 00:13:18 +0100 Subject: [PATCH 6/6] Update rfcs/glossary/Appendix C -- Glossary.md Co-authored-by: Benjie --- rfcs/glossary/Appendix C -- Glossary.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rfcs/glossary/Appendix C -- Glossary.md b/rfcs/glossary/Appendix C -- Glossary.md index 54701edf..6ee5e081 100644 --- a/rfcs/glossary/Appendix C -- Glossary.md +++ b/rfcs/glossary/Appendix C -- Glossary.md @@ -187,8 +187,7 @@ Example: ### (GraphQL) service -**Definition**: anything capable of executing a GraphQL request and returning -a GraphQL response conforming to the specification. +**Definition**: A GraphQL service generates a [response](https://spec.graphql.org/draft/#sec-Response) from a [request](https://spec.graphql.org/draft/#request) via [execution](https://spec.graphql.org/draft/#sec-Execution). How the conformance is implemented is irrelevant. A cache in front of another GraphQL service can itself be seen as a conforming service, assuming it does not