Skydiver Originally from Russia, lived most of my life in Finland, and moved to UK 2 years ago. Brighton was my first place to visit after landing in London.
D Service A implements an alternative version of REST Service B implements an endpoint that tries to drive the UI Service C haven't implemented anything yet Service D implemented a service which is only available on a specific internal WIFI network. When you connect to it, none of the other endpoints are available. You mission, should you choose to accept it, is to consume all of the mentioned endpoints while providing great user experience.
mobile client v1 was limited in features. Mobile app v2 was web app based, equal in features, bad in performance Mobile app v3 was again 100% native and full of features, but that required change on how data is server from backend. Gravity shift from a web app to data delivery to a multiple clients. Inability to make such adjustments can kill companies.
be like.. hmm. The way GraphiQL works is INTROSPECTION Introspection can be used also for generating documentation. Tool for exploring schema and building tools Way of selling GraphQL to anyone (Introspection - the way GraphiQL works, and other tools could too)
3, "name": "Excuse me while I kiss these frets", "owner": { "avatar_url": "https://secure.gravatar.com/avatar/ 4ede0ad35bb796ea8f78861acc4372ca?s=300", "bio": null, "id": "b06e671a-b169-45e6-a645-74c31abca910", "login": "playlistrock", "name": "Playlist Rock", RESTful responses tend to grow to accomodate different clients and use cases Overfetching Data massaging on clients Specifications and documentations is usually awful for REST endpoints
are multiple implementations, including reference JS one by Facebook, .NET, Ruby, Scala. GraphQL server can be implemented using any language. You can use any database with that implementation. Clients can use any protocol to relay data.
reference implementation of it in JavaScript, as well as Node middleware for easy integration. Let’s see this in action. We will also now venture on the server side and see how things are working there - in particular how request being received and resolved into response. We cheated a bit with reindex.io in the beginning, which takes this complexity away. Express middleware uses RESTful GET / POST requests.
when you’re querying multiple RESTful endpoints. Compose a list of promises. Resolve all promises. Compose a list of errors / successes. Compose a JSON response.
generally tricky to implement. Relay handles this via central app state. There is also temporary state where all mutations are initially live. If server response is successful, temporary state is merged with the central state. Once data requirements are declared, Relay is smart enough to only request data that is not cached yet. It will do caching too. Expect support for offline mode and flaky networks soon. React was easy to start using in 5 min, Relay takes some time to get used to. Mutations are notoriously famous fir their complexity. Debugging Relay should become easier soon once new React dev tools are released - for now it is inspecting GET / POST requests in Chrome devtools.
Android 87% in case of this app You will have to re-write UI components, but Relay logic, mutations and queries can be re-used across platforms - web, iOS and Android Learn once, write everywhere
D GRAPHQL SERVER Contain data massaging logic in GraphQL server Handle all RESTful service orchestration in a single place Allow clients to evolve nicely and make flexible requests
D GRAPHQL SERVER IOS ANDROID TODO: versions of the apps feeding from the same GraphQL server Give yourself space to evolve Also allows you easily mock external services You just mock responses in resolve() And easy to test Can develop in isolation
D GRAPHQL SERVER IOS ANDROID FRONT END APP V2 IOS V2 ANDROID V2 TODO: versions of the apps feeding from the same GraphQL server Give yourself space to evolve Also allows you easily mock external services You just mock responses in resolve() And easy to test Can develop in isolation
V2 IOS V2 ANDROID V2 TODO: versions of the apps feeding from the same GraphQL server Give yourself space to evolve Also allows you easily mock external services You just mock responses in resolve() And easy to test Can develop in isolation
- Nick Schrock on GraphQL • http://graphql.org/ • https://www.reindex.io/ • http://radiobadger.com/posts/2015-11-05-episode-26.html Shameless but relevant plug - when Relay team was in London I went to Facebook to make an interview, which is now available as Radio Badger podcast episode.