|
9 | 9 |
|
10 | 10 | - API query language and IDL
|
11 | 11 | - API query language is designed for JSON responses
|
12 |
| -- IDL makes documentation first-class, e.g. via introspection |
| 12 | +- IDL makes documentation first-class, e.g. via introspection |
| 13 | + |
| 14 | +//// nordicapis |
| 15 | + |
| 16 | +predetermined, knowable format |
| 17 | + |
| 18 | +application layer query language |
| 19 | + |
| 20 | +interprets strings from the client, and returns data in an understandable, predictable, pre-defined manner |
| 21 | +-> client specifiers what wants, gets what specifies |
| 22 | + |
| 23 | +client defines the expected data format |
| 24 | + |
| 25 | +single endpoint |
| 26 | +variable request call |
| 27 | +eliminates ad hoc endpoints and roundtrip object retrievals |
| 28 | + |
| 29 | +layer between data and client, can transform, aggregate, bridge the gap, without either side having to sacrifice flexibility |
| 30 | + |
| 31 | +single request, no n+1 problem |
| 32 | +automatically joins |
| 33 | + |
| 34 | +allows to select subset |
| 35 | +allows to alias names |
| 36 | + |
| 37 | +server publishes clear and explicit rules, types |
| 38 | +can validate query ahead of time against schema |
| 39 | + |
| 40 | +introspect schema, understand API better, self-documenting |
| 41 | + |
| 42 | +/// spec |
| 43 | + |
| 44 | +a query language and execution engine |
| 45 | + |
| 46 | + |
| 47 | +///// ? |
| 48 | + |
| 49 | +can save static query on server, just send identifier and variables from client |
| 50 | + |
| 51 | +//// Lee Byron talk |
| 52 | + |
| 53 | +- fast |
| 54 | +bundle multiple request and response in one |
| 55 | +describes what needs upfront |
| 56 | +single round trip |
| 57 | +can only get subset of what needs |
| 58 | +- robust |
| 59 | +response shape guarantees |
| 60 | +no crashes because unexpected format |
| 61 | +static types, schema |
| 62 | +- self-documenting |
| 63 | +no manual out-of-date documentation |
| 64 | +static analysis locally |
| 65 | +- faster development |
| 66 | +additional layer, decouples client further from server, aliasing, etc. |
| 67 | + |
| 68 | +no need to version |
| 69 | + |
| 70 | +//// benjie talk |
| 71 | + |
| 72 | +tooling, linting, code generation works with any GraphQL API thanks to schema |
| 73 | + |
| 74 | +//// meta guys talk |
| 75 | + |
| 76 | +layer makes looser coupling, constant endpoint, etc. |
| 77 | + |
| 78 | +separate problems of server from problems of client |
| 79 | + |
| 80 | +/// yelp guy |
| 81 | + |
| 82 | +if field is unexpectedly null, then sets parent to null, walks up the tree until fiends nullable field, never sends null where expected non-null |
| 83 | + |
| 84 | +null in non-null field bubbles up to next nullable field |
0 commit comments