Bon après-midi
Il n'y a pas si longtemps, il était nécessaire d'implémenter dans une application Android une communication avec l'API du serveur via
des requêtes REST . La mise en œuvre de la partie logicielle sur Android n'a pas été difficile, en raison de la présence d'une bibliothèque
Retrofit pratique et simple. Cependant, après avoir écrit quelques demandes GET / POST dans les API ouvertes existantes (par exemple, Github et d'autres exemples de mise à niveau standard), il est devenu nécessaire de commencer à tester la logique d'application. Dans ce cas, bien sûr, je voudrais avoir mon propre serveur, qui contient ses modèles de données et a des interconnexions entre les modèles, ainsi que différents niveaux d'accès à des modèles de données spécifiques. Dans cet article, je voudrais vous expliquer comment créer un serveur local en quelques petites étapes, ajouter les modèles nécessaires, configurer les relations entre eux et fournir un accès distant à ce serveur.
Je voudrais immédiatement clarifier afin d'éviter tout malentendu de la part des lecteurs:
Moi, ainsi que ceux à qui cet article est destiné, je suis un novice dans la mise en œuvre de la partie serveur, qui, par hasard, est entré dans une situation dans laquelle j'ai été obligé de lever l'api le plus rapidement possible pour moi-même pour tester l'application Android. Toutes les informations présentées dans l'article peu à peu peuvent être trouvées sur les espaces ouverts de google et youtube et les trouver et les assembler en un seul ensemble ne sera pas difficile si vous savez quoi chercher. Cependant, cela prend du temps pour prendre des décisions sur la mise en œuvre technologique, ainsi que pour rechercher des informations pour chaque décision spécifique.
1. NodeJS et Loopback
La première chose que vous devez clarifier immédiatement est que le serveur sera implémenté en utilisant le framework Lodeback Node.js. Tout d'abord, installez Node.js. lui-même. La dernière version de Node.js est sur le site
nodejs.org/en/download , téléchargez-la et installez-la.
Après cela, exécutez la ligne de commande et entrez la commande suivante et attendez la fin du processus:
npm install -g loopback-cli
2. Créez une application
Pour créer une nouvelle application (votre serveur) pour le cadre
Loopback , accédez au répertoire où votre serveur sera situé sur la ligne de commande, entrez la commande
lb et répondez à un certain nombre de questions sur l'application, notamment:
- nom de l'application (dans mon cas, test_server)
- nom du répertoire pour le projet (laissez vide, puis un dossier avec le nom du projet sera créé dans ce répertoire)
- Version LoopBack (sélectionnez la version actuelle)
- type d'application (officiellement parlant - un modèle d'application. Choisissez api-server)

Après avoir terminé le processus de création de l'application, accédez au dossier créé avec les fichiers d'application et essayez de l'exécuter avec la commande suivante:
node .
L'application s'exécute à l'adresse locale:
localhost: 3000 / explorer . De plus, l'application possède déjà un modèle utilisateur et un certain nombre de fonctions REST.

Formellement, votre serveur est prêt et traite avec succès les requêtes locales. Vous pouvez vérifier la disponibilité et le fonctionnement du serveur à l'aide de l'application
Postman ou de votre application Android.
3. Modèles et relations
Ensuite, vous devez créer des modèles avec des données et les relations entre eux. Prenons un exemple simple de modèle et de relations: imaginez que notre application donne un retour sur les films. Vous entrez le nom du film et vous devriez recevoir toutes les critiques de ce film en particulier. Ainsi, dans le cas le plus primitif, deux modèles doivent être stockés dans la base de données:
Movie (a champs: nom, année) et
Review (autor, description). La relation entre les modèles est la suivante, un film peut avoir de nombreuses critiques.
Ainsi, une demande REST aux films aura un tel lien
localhost: 3000 / api / Movies , et un
localhost: 3000 / api / Movies / {id} / Reviews à la liste des critiques
Créez ces deux modèles sur le serveur:
lb model
Nous répondrons aux questions suivantes sur le modèle:
- nom du modèle (par exemple, Movie)
- source de données pour la connexion (sélectionnez db (mémoire))
- classe de base du modèle (sélectionnez PersistedModel)
- afficher le modèle à l'aide de l'API REST (Oui)
- forme plurielle personnalisée (laisser vide)
- modèle général ou serveur uniquement (sélectionnez commun)
Maintenant, le modèle est créé et vous devez lui ajouter des champs (pour Movie, par exemple, le nom et l'année):
- nom de la propriété (par exemple nom)
- type de propriété (par exemple chaîne)
- est obligatoire (Oui)
- afficher le modèle à l'aide de l'API REST (Oui)
- valeur par défaut (laisser vide)

Après avoir ajouté toutes les propriétés, vu l'offre d'en ajouter une de plus, appuyez simplement sur «Entrée». Ajoutez également le deuxième modèle.
Vous devez maintenant configurer la relation entre eux. Nous écrivons une équipe et répondons aux questions:
lb relation
- sélectionner un modèle pour créer une relation (par ex. film)
- type de connexion (choisissez a plusieurs (un à plusieurs), car un film a de nombreuses critiques)
- choisissez un modèle pour la relation (dans notre cas, Review)
- nom de la communication (tout, j'écrirai des critiques)
- clé utilisateur (laisser vide)
- modèle intermédiaire (Non)
- Autoriser l'imbrication (non)
- déconnecter la communication des objets connectés suivants (Non)

C’est tout. Maintenant, démarrez le serveur avec la même commande que précédemment et regardez
localhost: 3000 / explorer . Nous voyons que nous avons nos modèles et nous pouvons voir la relation entre eux à travers
id .

4. Accès à distance au serveur
Maintenant, l'accès au serveur est limité au réseau domestique, ce qui n'est pas très pratique lors des tests à partir du téléphone. Essayons de rendre votre serveur distant. Pour ce faire, téléchargez
ngrok , déballez-le à n'importe quel endroit approprié et lancez-le. Ce programme est conçu pour créer un tunnel pour votre
localhost: 3000 , pour créer un accès distant pour lui en utilisant le lien généré. Entrez la commande suivante dans ngrok:
npm install ngrok -g ngrok http 3000

Nous voyons que le programme a créé un tunnel et maintenant votre serveur est disponible sur le lien fourni. Gardez à l'esprit que chaque fois que vous redémarrez le PC, le lien dans ngrok change.
Conclusion
Il a été présenté ci-dessus une description assez approximative et sèche du processus de création d'un simple serveur NodeJs pour tester votre application Android. Naturellement, il existe de nombreuses nuances associées même aux 4 étapes que j'ai décrites.
En plus de ce que j'ai déjà décrit, avec une seule commande, vous pouvez changer le niveau d'accès à l'API et organiser l'authentification des utilisateurs. Si quelqu'un est intéressé - posez des questions dans les commentaires - je répondrai. Le cadre lui-même a une
documentation assez détaillée, y compris les chapitres de démarrage traduits en russe (bien que pour la version 2.0 avec un ensemble de commandes différent)
Oui, c'est primitif, quelque part techniquement stupide, quelque part trop simple, mais pour une personne qui n'est pas impliquée dans les technologies de serveur et qui a besoin d'une solution rapide pour tester ses principales tâches, cette solution est aussi simple et rapide que possible.