2017-07-12 7 views
0

Je suis nouveau sur Graphql, Apollo, AWS S3 et Redux. Mais j'ai lu les tutoriels pour chacun et je connais RN, Node, Heroku et Mongo. J'ai du mal à comprendre exactement comment un "Graphql Server" est hébergé pour un appareil mobile (RN dans mon cas). Puis-je créer le serveur graphql avec Node et l'héberger sur un AWS S3? Prenez ces données en utilisant Apollo/Graphql dans mon code React-Native et stockez ces données localement en utilisant Apollo/Redux? Dois-je utiliser Graphcool comme point de terminaison dès le départ? Tout ce que j'essaye de faire est de tirer des données de ma base de données quand l'application se charge (je ne veux pas la diffuser, je devrais pouvoir utiliser les données hors ligne). Où puis-je chercher pour mieux comprendre?Lutte Conseptuelle: Comment React Native, Apollo, Node et un serveur Graphql fonctionnent-ils ensemble?

Répondre

1

J'ai quelques commentaires pour vous dans votre exploration du nouveau territoire. GraphQL est simplement le langage de requête pour votre base de données. Vous êtes donc libre d'exécuter n'importe quel type d'API (sur un serveur, sans serveur, etc.) qui utilisera graphql pour accepter une requête/mutation graphql et interagir avec votre base de données.

GraphCool est un «backend prêt à la production», essentiellement un back-end en tant que service. Donc, vous ne vous inquiétez pas de l'exécution d'un serveur (car je crois qu'ils fonctionnent le plus souvent sur une infrastructure sans serveur) ou de la gestion de l'emplacement de votre base de données.

Vous pouvez exécuter un serveur HTTP sur AWS EC2 ou sans serveur à l'aide d'AWS Lambda. (Ou la même saveur avec Google ou Azure). Quoi que vous décidiez d'utiliser pour accepter les demandes, votre point de terminaison acceptera les chaînes de requête graphql, puis fera des choses avec la base de données. AWS S3 est plus de stockage statique. Vous pouvez y stocker des fichiers à extraire, ou des scripts qui peuvent être extraits, mais S3 n'est probablement pas l'endroit où vous voudriez que soit exécuté un code de type serveur.

Apollo serait un outil à utiliser sur votre frontend pour interagir facilement avec votre serveur graphql. Apollo/Redux peut vous aider ensuite à gérer l'état dans toute l'application. Vous chargez simplement les données dans l'état de l'application au chargement, puis vous interagissez avec cet état sans avoir à faire d'autres appels externes.

J'espère que cela a été utile.

+3

Merci pour l'info! J'ai fini par utiliser Graph.cool (je le recommande fortement) et j'ai obtenu la plupart des requêtes et la structure de la base de données dans leur console. Une chose que je n'avais pas réalisé au début (vous en avez un peu fait allusion) est qu'Apollo crée automatiquement son propre magasin de résultats de requête dans un cache. Vous pouvez donc utiliser ce Store avec Redux ou comme vous l'avez choisi! – IsaacWIvins