~/talk

Build the API you want to see in the world

Talkat RuhrJS 2018 · on Sunday, 2018-10-14· [graphql, react]
slides:none on file

A production React site (Vogue Germany) moves an intermediary GraphQL layer between an internally built CMS and the app, replacing many client-side calls with a single multi-purpose endpoint and using tools like GraphQL Playground for live schema docs. The layer resolves nested requests and combines sources (CMS plus a shoes API), trims payloads (the app was using less than 50% of returned fields), enforces clearer schemas, and makes the frontend resilient to swapping back-end services while improving performance and debuggability.

AI-written summary · about

  1. 0:00Start
  2. 4:53A lot of our components were tied very specifically to the API response.
  3. 8:44If we switched data sources, we'd have to completely rewrite our entire application.
  4. 9:28Technology changes, your app should be resilient!
  5. 11:30We were fetching data in complicated ways from deep trees in the API every time.
  6. 13:37One was a refactor based purely on domain driven design.
  7. 14:23Instant documentation
  8. 15:29We no longer have to fetch data with multiple requests in our main application.
  9. 17:35Domain Driven Design Hexagonal Architecture
  10. 18:24Changing data sources will only affect the GraphQL layer which shields the React app.
  11. 19:17You have a set of data that needs to serve multiple applications.
  12. 21:36You're building an application that uses multiple data sources.
  13. 23:30You want to enforce structure in your code base.
  14. 23:51You've built your REST API like a pseudo-GraphQL API anyway.
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.