Add GraphQL over HTTP announcement post - #2485
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
|
||
| Since the [initial release of GraphQL in 2015](https://github.com/graphql/graphql-spec/releases/tag/July2015), the GraphQL specification has always been transport agnostic. | ||
|
|
||
| If you read the GraphQL specification closely, you won't see any mention of a "server" or a "client", only of "services", taking "requests" in, executing them, and producing "responses". |
There was a problem hiding this comment.
GraphQL is a query language designed to build client applications by providing an intuitive and flexible syntax and system for describing their data requirements and interactions.
The spec uses the term client 37 times.
There was a problem hiding this comment.
My mistake, what I wanted to express was this concept from @leebyron :
- Lee: the spec doesn't really make a distinction between client and server. Given an
operation text and a schema, produce a result. There'd be a very high bar to introduce
the concept of server/client to the spec text - we don't have them currently. Relay
_is_ a GraphQL service.
I'll rephrase
|
|
||
| If you read the GraphQL specification closely, you won't see any mention of a "server" or a "client", only of "services", taking "requests" in, executing them, and producing "responses". | ||
|
|
||
| This is generally useful. You can use GraphQL on your local machine, over raw TCP, [avian carriers](https://en.wikipedia.org/wiki/IP_over_Avian_Carriers), or anywhere else. For the large crowd using GraphQL over HTTP, though, the lack of a specification made interoperability more difficult than it should have been. |
There was a problem hiding this comment.
Did it? GraphQL has always had HTTP guidance and most GraphQL services and clients have interoperated over HTTP just fine for the last 11 years - 200 + JSON.stringify are a straightforward combo. This spec is more about formalisation and encouraging best practices whilst setting us up for a future of greater capabilities (pun intended). Unless you mean interoperability with non-GraphQL software? If so you should be more explicit.
There was a problem hiding this comment.
Yea, I mostly meant interop with observability tools (The 200 Not OK memes). I've pushed a small clarification. Let me know what you think.
benjie
left a comment
There was a problem hiding this comment.
Good post; thanks for drafting this, Martin! I’ll remove it from my TODO list 🙌
…c.mdx Co-authored-by: Benjie <benjie@jemjie.com>
…c.mdx Co-authored-by: Benjie <benjie@jemjie.com>
September is coming! Getting ready for that initial release! Opened as draft cause some links are missing and also to encourage early feedback.