Fermer

mai 11, 2018

Développer et tester Kinvey Flex Services de manière plus simple


Progress Kinvey offre plusieurs façons de créer votre logique métier côté serveur, la plus puissante étant FlexServices associée au FlexService Runtime.

Presque toutes les applications requièrent un certain degré de logique métier côté serveur. Cela peut inclure tout ce qui concerne le nettoyage des données à destination ou en provenance du serveur, la connexion à des API tierces externes ou le traitement complexe et asynchrone le mieux conservé du client (pour ne citer que quelques exemples).

Progress Kinvey propose plusieurs façons de créer ce type de logique métier côté serveur qui s'exécute dans le cloud, mais le plus puissant d'entre eux est FlexServices combiné au FlexService Runtime . En utilisant FlexServices, nous pouvons construire une logique métier complexe en utilisant JavaScript et Node.js, en exploitant même l'énorme bibliothèque de modules npm dans notre code. Ces services sont développés localement et peuvent ensuite être déployés sur FlexService Runtime sur Kinvey ou même être exécutés en tant que services Flex externes .

Ça sonne bien, n'est-ce pas? Eh bien, la mise en garde est que le développement et l'essai de ceux-ci peuvent être un peu complexes. Par exemple, les tests locaux nécessitent que vous arrêtiez et démarriez l'exécution chaque fois que vous mettez à jour votre code. De plus, si vous interagissez avec des données qui résident dans Kinvey, ces données ne sont pas disponibles dans vos tests locaux. Même une fois que vous déployez le code sur le cloud, le débogage peut être limité: certaines erreurs ne s'affichent pas de la manière la plus utile (se présentant comme une défaillance générale de la logique métier) et il est difficile de voir quoi que ce soit. console, ce qui peut être extrêmement utile pendant le développement (vous devez vérifier les journaux du service Flex en exécutant kinvey flex logs à partir de la CLI et en analysant les réponses).

Bien sûr, vous savez qu'il y a une solution, non? Je veux dire, s'il n'y avait pas ce serait un article terrible. Donc, sans plus hésiter, regardons une configuration de développement FlexServices productive.

Pour donner du crédit là où le crédit est dû, de nombreux détails que je traite dans cet article proviennent de cet article de la base de connaissances de mon collègue Ivo Janssen .

Partie 1: nodemon

nodemon est un utilitaire créé par Remy Sharp qui a été conçu à l'origine pour redémarrer un serveur Node qui s'était écrasé. Il est utile dans notre cas de redémarrer le service s'il remarque des changements de fichier, ce qui en fait un outil parfait pour le développement de nœuds.

La façon la plus simple d'utiliser nodemon est de l'installer globalement via npm.

npm install -g nodemon

nodemon peut être installé localement en tant que dépendance de développement si vous préférez. Consultez la documentation de pour savoir comment l'utiliser de cette manière.

nodemon offre une variété d'options pour démarrer votre service, ou vous pouvez simplement le démarrer en utilisant les valeurs par défaut. Dans notre cas, nous allons démarrer le service et spécifier un port. Bien que ce ne soit pas nécessaire, en soi, il est un peu plus facile de gérer le transfert de port à l'étape suivante.

Tout d'abord, naviguez jusqu'au répertoire dans lequel vous développez votre FlexService et exécutez la commande suivante 10001, mais n'hésitez pas à changer cela car le port dépend de vous.)

nodemon. localhost 10001

Votre FlexService devrait maintenant être exécuté localement. Vous pouvez déjà créer et tester localement en utilisant des outils comme Postman sans faire d'autres étapes. Vous pourrez tester les modifications sans redémarrer manuellement le service, mais la limitation est que vous n'avez pas accès aux données et autres variables de votre application Kinvey.

 nodemon "title =" nodemon "/>  <p><a href= ngrok est un outil et un service qui peut simplifier le développement et les tests en rendant votre environnement local accessible au public. C'est un service payant avec un certain nombre de fonctionnalités, mais offre un compte gratuit qui suffit à nos fins.

La première étape, bien sûr, est de télécharger ngrok . Une fois que vous l'aurez exécuté, vous devrez le connecter à votre compte ngrok – l'outil vous guidera tout au long du processus.

Notez que ngrok est un binaire et qu'il n'y a pas de processus d'installation, vous devrez ouvrir votre terminal / invite de commande dans le dossier contenant le binaire pour l'exécuter via ./ ngrok . Je trouve plus facile de l'ajouter à mon PATH afin que je puisse y accéder de n'importe où. Les instructions spécifiques pour ajouter des répertoires ou des exécutables à votre variable PATH dépendent du type et de la version de votre système d'exploitation.

Une fois ngrok configuré, vous pouvez le démarrer pour le transfert de port HTTP et lui demander d'utiliser le même port que le service nodemon est en cours d'exécution (souvenez-vous que nous avons réglé cela sur 10001)

ngrok http 10001

Ce sera ./ ngrok http 10001 si vous n'avez pas ajouté ngrok à votre PATH. Une fois le service lancé, les détails de l'offre seront similaires à ceux présentés ci-dessous:

 ngrok "title =" ngrok "/> </p>
<p> L'étape suivante est l'URL de transfert attribuée par le service ngrok Dans mon exemple ci-dessus, il s'agit de <a href= https://a94cf078.ngrok.io mais gardez à l'esprit que cela changera chaque fois que vous arrêterez et redémarrerez ngrok.

Partie 3: Flex externe

Les services Flex externes sont conçus pour vous permettre d'exécuter un FlexService dans Kinvey hébergé sur un cloud tiers ou un fournisseur d'hébergement ou sur votre propre serveur, la clé étant que votre propre serveur soit dans votre cas l'environnement de développement que nous avons rendu accessible via ngrok.

Dans la console Web Kinvey allez dans le Service Catalog et cliquez sur le bouton "Add a Service". "Et puis" externe ".

 flex-external" title = "flex-external" /> </p>
<p> La forme est assez droite avant. Vous pouvez nommer le service comme vous voulez, choisir de l'appliquer à une application Kinvey spécifique ou à une organisation, lui donner le secret que vous voulez (ce n'est pas important car c'est uniquement pour les tests locaux) et enfin, entrez votre ngrok redirigeant l'URL en tant qu '"hôte". </p>
<p> <img decoding= Connexion d'un point de terminaison personnalisé à votre serveur local

Dans votre application Kinvey, choisissez "Points de terminaison personnalisés", puis choisissez "Add a Endpoint". choisissez ensuite "Microservice".

 custom-endpoint "title =" custom-endpoint "/> </p>
<p> De là, vous devriez voir le service que vous avez ajouté précédemment ainsi que les gestionnaires FlexFunction découverts. </p>
<p> <img decoding= Autres options

Vous suivrez un processus très similaire pour tester tous les gestionnaires destinés à être utilisés comme hooks de collection (iePreSave, onPostSave, etc .). Pour FlexData, vous devez créer la collection, choisir "Utiliser un service de données" comme source, puis choisir le service parmi les options. Enfin, pour FlexAuth, accédez à "Mobile Identity Connect" via la console, appuyez sur "Ajouter un service d'authentification" puis sélectionnez l'option "Flex Runtime", après quoi votre service devrait apparaître dans le formulaire de configuration du fournisseur d'authentification. 19659045] Partie 4: API Console

Maintenant que nous avons tout configuré, il est temps de tester notre service. La façon la plus simple d'y parvenir est d'utiliser la console d'API intégrée à la console Web de Kinvey.

Par exemple, pour tester un point de terminaison personnalisé, choisissez-le simplement dans la liste déroulante. Gardez à l'esprit que tous les points de terminaison personnalisés s'attendent à ce que la demande soit un POST

 API-console "title =" API-console "/> </p>
<p> Si vous avez des erreurs ou même <span style= console.log () appelle dans votre code, les détails complets doivent apparaître dans votre terminal local / fenêtre d'invite de commande / onglet qui exécute nodemon.

Pour tester un hook de collection ou un service FlexData, utilisez simplement la console API pour interroger le collection via des appels GET / POST / PUT / DELETE.

Tester FlexAuth via la console API est un peu différent Dans la console API, choisissez "Afficher les options".

 MIC-test-step1 "title = "MIC-test-step1" /> </p>
<p> Choisissez ensuite "Change" pour changer l'authentification par défaut du maître principal </p>
<p> <img decoding= Bien sûr, la mise en place semble compliquée, mais surtout parce que je suis bavarde – j'ai un talent particulier pour transformer le sujet le plus simple en un 100 -page de thèse. Crois moi juste que c'est encore plus facile qu'il n'y paraît. Et une fois que tout est configuré, le processus de développement devient aussi simple que: faire un changement de code -> test dans la console API

Une fois que tout fonctionne correctement, déploie votre service flexible . Avec tout le temps que vous avez économisé dans le processus de développement, vous pourriez aussi bien rentrer chez vous tôt! ?




Source link