Comment construire un backend pour Elixir ?
Dans ce tutoriel, vous apprendrez comment construire un backend pour Elixir en utilisant Back4App.
Nous allons passer en revue l'intégration des fonctionnalités essentielles de Back4App—telles que la gestion de base de données, les fonctions Cloud Code, les API REST et GraphQL, l'authentification des utilisateurs et les requêtes en temps réel (Live Queries)—pour créer un backend sécurisé, évolutif et robuste.
Elixir, fonctionnant sur la VM Erlang (BEAM) et tirant parti d'OTP (Erlang OTP), est connu pour son environnement tolérant aux pannes et concurrent, qui s'associe bien avec Back4App pour former une infrastructure moderne et haute performance.
Vous verrez comment la configuration rapide de Back4App et son environnement intuitif peuvent réduire considérablement votre temps et vos efforts par rapport à la configuration manuelle des serveurs et des bases de données.
Cela inclut l'utilisation de la correspondance de motifs, ainsi que l'intégration dans le framework web de choix d'Elixir.
À la fin de ce tutoriel, vous aurez une base solide que vous pourrez étendre en une application prête pour la production ou améliorer avec une logique personnalisée et des API tierces.
Pour compléter ce tutoriel, vous aurez besoin de :
- Un compte Back4App et un nouveau projet Back4App Guide de démarrage avec Back4app. Si vous n'avez pas de compte, vous pouvez en créer un gratuitement. Suivez le guide ci-dessus pour préparer votre projet.
- Environnement de développement Elixir de base Assurez-vous d'avoir Elixir installé sur votre machine. Si vous prévoyez d'utiliser un framework web tel que Phoenix, consultez le guide d'installation de Phoenix pour référence.
- Familiarité avec les concepts Elixir Documentation officielle d'Elixir. Si vous êtes nouveau dans Elixir, consultez ces ressources ou un tutoriel pour débutants avant de commencer.
Assurez-vous d'avoir tous ces prérequis en place avant de commencer. Avoir votre projet Back4App configuré et votre environnement Elixir local prêt vous aidera à suivre plus facilement.
La première étape pour créer un backend pour Elixir sur Back4App consiste à créer un nouveau projet. Si vous ne l'avez pas encore fait, suivez ces étapes :
- Connectez-vous à votre compte Back4app.
- Cliquez sur le bouton “Nouvelle application” dans votre tableau de bord Back4App.
- Donnez un nom à votre application (par exemple, “Elixir-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
Une fois le projet créé, vous le verrez listé dans votre tableau de bord Back4App. Ce projet sera la base de toutes les configurations backend discutées dans ce tutoriel.
Back4App utilise la plateforme Parse comme fondation. Pour Elixir, il n'existe pas de SDK Parse officiel pour le moment. Au lieu de cela, vous pouvez facilement vous connecter à Back4App en utilisant les API REST ou GraphQL. Dans votre projet Elixir, vous devrez :
- Récupérer votre ID d'application et Clés REST ou GraphQL depuis la section “Paramètres de l'application” ou “Sécurité & Clés” dans le tableau de bord Back4App.
Par exemple, pour stocker des identifiants dans un fichier de configuration (config/dev.exs ou similaire) :
Vous pouvez ensuite référencer ces identifiants dans votre code pour effectuer des appels REST. Tout au long de ce guide, nous allons montrer comment interagir avec la base de données Back4App, le système d'utilisateurs et d'autres fonctionnalités en utilisant des requêtes HTTP ou GraphQL standard.
Dans Back4App, les données sont stockées dans des classes. Vous pouvez créer une nouvelle classe dans le tableau de bord Back4App :
- Naviguez vers la section “Base de données” dans votre tableau de bord Back4App.
- Créez une nouvelle classe (par exemple, “Todo”) et ajoutez des colonnes pertinentes, telles que titre (String) et estComplété (Boolean).
![Créer une nouvelle classe Créer une nouvelle classe](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4App fournit également un agent IA pour vous aider à décrire et créer votre modèle de données :
- Ouvrez l'agent IA depuis votre tableau de bord d'application ou le menu.
- Décrivez votre modèle de données en langage simple (par exemple, “Veuillez créer une nouvelle application Todo avec un schéma de classe complet.”).
- Laissez l'agent IA créer le schéma automatiquement.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Puisqu'Elixir n'a pas de SDK Parse officiel, nous allons sauter l'utilisation directe du SDK. Au lieu de cela, nous allons présenter REST, GraphQL, et Live Queries approches ci-dessous.
Installez un client HTTP comme HTTPoison dans votre mix.exs:
Ensuite, exécutez mix deps.get.
Pour créer (sauvegarder) un objet Todo depuis votre application Elixir :
Et pour interroger vos objets Todo :
Vous pouvez également interagir via GraphQL. Par exemple, créer un Todo :
En Elixir, vous pourriez également envoyer cela avec un client HTTP :
Pour des mises à jour en temps réel, Back4App propose des requêtes en direct. Vous pouvez activer les requêtes en direct dans les Paramètres du serveur. Comme il n'existe pas de bibliothèque cliente Parse Elixir native pour le moment, vous vous connecterez généralement via un canal Phoenix ou tout client WebSocket personnalisé au wss://YOUR_SUBDOMAIN_HERE.b4a.io point de terminaison. Cela peut être plus avancé, nécessitant un codage personnalisé pour gérer les abonnements, les messages, etc.
Back4App propose des listes de contrôle d'accès (ACL) et des autorisations au niveau de la classe (CLP) pour protéger et gérer l'accès aux données. Les ACL s'appliquent à des objets individuels, tandis que les CLP s'appliquent à l'ensemble de la classe.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Permissions au niveau de la classe (CLPs): Dans votre tableau de bord Back4App, sous Base de données, sélectionnez une classe (par exemple, “Todo”) et ouvrez l'onglet Permissions au niveau de la classe. Ajustez les paramètres (par exemple, “Nécessite une authentification” ou “Aucun accès” pour le public).
- Configurer les ACL: Lors de la création ou de la mise à jour d'un objet, vous pouvez envoyer des données ACL dans votre requête REST ou GraphQL. Par exemple, spécifiez le champ _ACL en JSON si vous avez besoin d'un contrôle granulaire par objet.
![Modifier les ACL Modifier les ACL](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
Pour plus d'informations, visitez les Directives de sécurité de l'application.
Le Cloud Code vous permet d'exécuter une logique côté serveur sans gérer vos propres serveurs. Avec Elixir, vous vous appuyez généralement sur OTP pour la concurrence, mais ici, vous pouvez simplement créer du Cloud Code JavaScript dans Back4App pour gérer la validation, les déclencheurs ou la logique métier personnalisée. Ce code s'exécute sur Parse Server, vous pouvez donc garder votre code Elixir concentré sur les tâches client ou microservice pendant que le travail lourd se fait dans le Cloud Code.
Dans votre main.js sur le tableau de bord Back4App ou en utilisant le CLI :
Déployez via le Back4app CLI ou en collant dans le tableau de bord sous Cloud Code > Functions et en cliquant sur Déployer.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Depuis Elixir, vous pourriez utiliser :
Back4App utilise la classe User pour l'authentification. Vous pouvez gérer facilement l'inscription, la connexion et les réinitialisations de mot de passe. Depuis Elixir, vous utiliserez généralement des appels REST :
Back4App prend en charge l'intégration avec Google, Apple, Facebook, et plus encore. Dans la plupart des cas, vous dirigerez les utilisateurs vers le flux OAuth, puis utiliserez les jetons retournés par ces fournisseurs pour compléter la connexion Parse. Voir Documentation sur la connexion sociale pour plus de détails.
Back4App stocke les fichiers en toute sécurité. Depuis Elixir, vous pouvez télécharger des fichiers via REST :
Vous recevrez une réponse JSON avec l'URL du fichier, que vous pouvez stocker dans une classe (par exemple, Photo) pour référence.
Vous pouvez configurer qui peut télécharger des fichiers dans les paramètres de fileUpload de votre projet Back4App, en restreignant les téléchargements aux utilisateurs authentifiés si vous le souhaitez.
La vérification par e-mail garantit que les utilisateurs possèdent l'adresse e-mail utilisée lors de l'inscription. La réinitialisation du mot de passe leur permet de récupérer des comptes en toute sécurité. Les deux fonctionnalités sont intégrées sur Back4App.
- Activer la vérification par e-mail dans les “Paramètres de l'application” ou “Authentification” de votre application.
- Configurer le Adresse d'expédition et les modèles d'e-mail.
- Activer la réinitialisation du mot de passe pour permettre aux utilisateurs de réinitialiser via un lien envoyé par e-mail.
Une fois activée dans le tableau de bord, vous pouvez déclencher des réinitialisations de mot de passe :
Les emplois dans le cloud vous permettent d'automatiser des tâches routinières comme le nettoyage des anciennes données ou l'envoi d'e-mails périodiques. Vous les écrivez dans Cloud Code.
- Déployer le code.
- Allez sur le tableau de bord Back4app > Paramètres de l'application > Paramètres du serveur > Emplois en arrière-plan.
- Planifiez le travail pour qu'il s'exécute quotidiennement ou à une fréquence de votre choix.
![Planification d'un emploi dans le cloud Planification d'un emploi dans le cloud](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Les webhooks permettent à votre application Back4App d'envoyer des requêtes HTTP à un service externe (par exemple, un canal Slack ou Stripe) lorsque certains événements se produisent.
- Accédez à la configuration des Webhooks dans votre tableau de bord Back4App > Plus > Webhooks.
- Définissez le point de terminaison (par exemple, https://your-service.com/webhook-endpoint).
- Configurez les déclencheurs tels que “Nouvel enregistrement dans la classe Todo.”
![Ajout d'un Webhook Ajout d'un Webhook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Si vous souhaitez envoyer des données à Slack chaque fois qu'un Todo est créé, vous pouvez ajouter un nouveau webhook pointant vers votre URL de webhook entrant Slack. Vous pouvez également définir des Webhooks dans le Cloud Code en envoyant des requêtes HTTP personnalisées dans des déclencheurs comme afterSave.
![WebHook BeforeSave WebHook BeforeSave](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
L' Application d'administration Back4app est une interface conviviale pour gérer vos données. Vous pouvez l'activer depuis Tableau de bord de l'application > Plus > Application d'administration.
![Activer l'application d'administration Activer l'application d'administration](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
- Créer un premier utilisateur administrateur, ce qui configure le rôle B4aAdminUser et des classes supplémentaires.
- Attribuer un sous-domaine pour accéder à l'interface d'administration.
- Se connecter pour visualiser et gérer les données dans une interface simple.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
En suivant ce tutoriel sur la façon de construire un backend pour Elixir avec Back4App, vous avez :
- Créé une backend sécurisé sur la plateforme de Back4App en utilisant Elixir pour l'intégration.
- Mis en place une base de données avec des classes, des types de données et des relations.
- Utilisé REST/GraphQL pour interagir avec vos données depuis Elixir.
- Appliqué la sécurité en utilisant des ACL et des CLP.
- Ajouté une logique personnalisée avec des fonctions Cloud Code.
- Configuré l'authentification des utilisateurs avec vérification par e-mail et réinitialisation de mot de passe.
- Géré le stockage de fichiers et la récupération.
- Planifié des tâches en arrière-plan pour l'automatisation.
- Intégré des services externes avec des webhooks.
- Exploré le panneau d'administration de Back4App pour une gestion facile des données.
Avec le modèle de concurrence d'Elixir (alimenté par l'Erlang VM) et OTP, combiné avec les services évolutifs et flexibles de Back4App, vous pouvez construire des backends très robustes.
Continuez à explorer des fonctionnalités plus avancées, intégrez votre logique métier, et laissez Back4App vous aider à gérer le travail lourd.
- Construire une application Elixir prête pour la production en superposant ce backend avec votre framework web Elixir/Phoenix préféré.
- Intégrer des fonctionnalités avancées comme le contrôle d'accès basé sur les rôles ou des API tierces (passerelles de paiement, services de messagerie).
- Explorer la documentation officielle de Back4app pour la sécurité avancée, les journaux, l'optimisation des performances, et plus encore.
- Consulter d'autres tutoriels pour des applications en temps réel, des tableaux de bord IoT, ou des services basés sur la localisation. Avec le pattern matching et la concurrence OTP à votre disposition, vous êtes équipé pour aborder une large gamme d'applications!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)