This page (revision-1) was last changed on 29-Nov-2024 16:16 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 added 70 lines
!!! Overview[1]
[{$pagename}] is a [protocol] and a query [Interface Definition Language] for [APIs] and a run-time for performing queries with your existing [data].
[{$pagename}] provides a complete and understandable description of the [data] in your [API], gives [clients] the power to ask for exactly what they need and nothing more, makes it easier to evolve [APIs] over time, and enables powerful developer tools.
[{$pagename}] is a data query language developed internally by [Facebook] in [2012|Year 2012] before being publicly released in [2015|Year 2015]
[{$pagename}] provides an alternative to [REST] and ad-hoc [Web Service] architectures
[{$pagename}] allows the [client] to specify the properties of a [Resource] that is to be provided rather than the properties dictated by an [API], [schema], [Interface Definition Language] or the [server] author.
!! Architecture[2]
[{Image src='GraphQL/graphQL-architecutre.png' caption='Architecture' align=left width=1024 height=768 style='font-size: 120%}] \\
[{$pagename}] requires a [GraphQL Server] and a [GraphQL Client] which use a [JSON] based [GraphQL schema language].
[{$pagename}] [query] is a [string] that is sent to a server to be interpreted and fulfilled, which then returns [JSON] back to the client.
\\[Example] [{$pagename}] [Request]:
%%prettify
{{{
{
hero {
id
name
friends {
id
name
}
}
}
}}}
/%
\\[Example] [{$pagename}] [Response]:
%%prettify
{{{
{
"hero": {
"id": "2001",
"name": "R2-D2",
"friends": [
{
"id": "1000",
"name": "Luke Skywalker"
},
{
"id": "1002",
"name": "Han Solo"
},
{
"id": "1003",
"name": "Leia Organa"
}
]
}
}
}}}
/%
[{$pagename}] queries access not just the properties of one [resource] but also smoothly follow references between them. While typical [REST] [APIs] require loading from multiple [URLs], [{$pagename}] [APIs] get all the [data] your app needs in a single request. Apps using [{$pagename}] can be quick even on slow mobile [network] connections.
!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]
----
* [#1] - [graphql|http://graphql.org/|target='_blank'] - based on information obtained 2017-03-12
* [#2] - [Introduction to GraphQL|https://learngraphql.com/basics/introduction|target='_blank'] - based on information obtained 2017-03-12