You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: notes/NewSiteArchitecture.md
+33-27Lines changed: 33 additions & 27 deletions
Original file line number
Diff line number
Diff line change
@@ -10,31 +10,36 @@ This page is effectively a marketing page for GraphQL and should be the visual,
10
10
11
11
Above the fold, this page should succinctly explain what GraphQL is and illustrate with a simple (editable) query/response example. Before scrolling you should understand the following:
12
12
13
-
* GraphQL is an query language for APIs.
13
+
* GraphQL solves the same problem as REST.
14
+
* GraphQL is an query language for APIs (and not Databases).
14
15
* GraphQL is sent by client applications, such as an iOS app.
15
16
* GraphQL is evaluated by a web service and often returned as JSON.
16
-
* GraphQL typically replaces REST.
17
+
* GraphQL services provide a complete description of your data with a type system.
18
+
* It's easy to build powerful tools for your data using GraphQL.
17
19
18
20
Below the fold we should introduce concepts one at a time, each with visual metaphor and take-aways:
19
21
20
-
1) GraphQL describes what a client needs in terms of how client developers think about data.
22
+
1) GraphQL clients describe what they need in terms of how client developers think about data.
21
23
22
24
* If you're familiar with JSON, GraphQL is easy to learn and understand.
23
-
*It's easy to anticipate the shape of the result for any query.
24
-
*GraphQL only sends what you ask for, nothing more or less.
25
+
*GraphQL only sends what you ask for, nothing more or less, making your app faster and more stable.
26
+
*It's easy to anticipate the shape of the result of any query.
25
27
26
28
2) GraphQL queries can access many "resources" in a single network request.
27
29
28
30
* A query can access properties of not just one object, but of many related objects.
29
-
* Compared to REST, GraphQL requires much less network activity.
31
+
* A query can access multiple unrelated objects at once.
32
+
* Compared to REST, GraphQL collects all the data needed for your app with much less network activity, making your app faster.
30
33
31
-
3) GraphQL services provide a type system.
34
+
3) GraphQL services describes what's possible with a strong type system.
32
35
36
+
* GraphQL services provide a complete description of your data.
33
37
* Every `{ }` corresponds to an object of a particular type, and every type describes the fields available.
34
-
* GraphQL only runs queries that make sense.
38
+
* GraphQL only runs queries that make sense and provides helpful error messages.
35
39
* Tools and IDEs can make editing queries easy via type-aheads.
36
40
* GraphiQL is a free tool that you can use.
37
41
* Type system defines descriptions, making it easy to keep documentation up to date.
42
+
* Every query guarantees the shape and type of its response.
38
43
39
44
4) GraphQL is composable via fragments.
40
45
@@ -47,14 +52,14 @@ Below the fold we should introduce concepts one at a time, each with visual meta
47
52
* Server does not need to worry about concerns of any particular client, only the complete set of capabilities. Clients are responsible for the data they receive.
48
53
* Because GraphQL only sends what you ask for, new capabilities can be introduced via new fields on types with no impact on existing queries.
49
54
* Old capabilities can be marked "deprecated" with no impact on existing queries.
50
-
*Far fewer reasons for versioning your API when using GraphQL.
55
+
*No versioning your API when using GraphQL leads to cleaner code on the server.
51
56
52
57
6) GraphQL queries are answered by simple functions on your server.
53
58
54
59
* GraphQL is not backed by any database technology, just like REST.
55
60
* Every field on each type is represented by a function for retrieving that data.
56
-
*A GraphQL executor will call your functions and use as much concurrency as possible.
57
-
*Possibilities are endless for connecting to your server's existing data model.
61
+
* GraphQL will call your functions and execute a query with optimal concurrency.
62
+
*It's easy to write a GraphQL API using your existing data model.
58
63
59
64
Finally, there will be a set of links for learning more (diving into `Learn`) and for getting started (in `Code`). As well as a wall-o-logo for companies using GraphQL.
60
65
@@ -76,45 +81,46 @@ The landing page for this section should begin as a more information-rich introd
76
81
77
82
There is then a TOC through the sections and chapters (this is a straw-man list, open to reordering and addition)
*Goal:* Introduce open source GraphQL tools along with quick getting started guidelines for each.
116
122
117
-
*Timeframe:*Top 3 servers described by Sept 12th, remainder by Sept 30th.
123
+
*Timeframe:*At least 3 servers described by Sept 12th, remainder by Sept 30th.
118
124
119
125
This page is all about fulfilling the "Ok I'm sold! Now what?" conundrum. It should first very quickly reintroduce the elements of GraphQL you would expect to see software for as well as offer a quick path towards getting something working.
120
126
@@ -141,7 +147,7 @@ Hosted GraphQL-as-a-service have an opportunity to pitch themselves here.
141
147
142
148
4) Tools
143
149
144
-
Highlight many common tools and libraries used by GraphQL community, e.g. GraphiQL.
150
+
Common tools used by GraphQL community, e.g. GraphiQL.
0 commit comments