Quickstarters

Comment construire un backend pour JavaScript ?

53min

Introduction

Dans ce tutoriel, vous apprendrez à construire un backend complet pour une application JavaScript Vanilla 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 qui communique sans problème avec votre front-end écrit en JavaScript pur.

Vous verrez également comment la configuration rapide et l'environnement intuitif de Back4app peuvent réduire considérablement le temps et les efforts par rapport à la configuration manuelle des serveurs et des bases de données.

En cours de route, vous acquerrez une expérience pratique avec des fonctionnalités clés, y compris des fonctionnalités de sécurité avancées, la planification de tâches avec Cloud Jobs et la configuration de webhooks pour des intégrations externes.

À la fin de ce tutoriel, vous serez bien préparé à améliorer cette configuration de base en une application prête pour la production, ou à incorporer facilement une logique personnalisée et des API tierces selon vos besoins.

Conditions préalables

Pour compléter ce tutoriel, vous aurez besoin de :

  • Un compte Back4app et un nouveau projet Back4app Commencer 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 JavaScript Vanilla de base Vous pouvez le configurer en créant simplement un index.html fichier et en référencant des scripts externes. Assurez-vous d'avoir un navigateur web moderne ou un environnement capable d'exécuter JavaScript.
  • Node.js (version 14 ou supérieure) (optionnel) Vous aurez besoin de Node.js si vous prévoyez d'installer le SDK JavaScript Parse localement ou de gérer le déploiement de code via la ligne de commande. Installer Node.js
  • Familiarité avec les fondamentaux de JavaScript MDN Web Docs sur JavaScript. Révisez les concepts de base de JavaScript si vous êtes nouveau dans le langage.

Assurez-vous d'avoir toutes ces conditions préalables en place avant de commencer. Avoir votre projet Back4app configuré et un environnement JavaScript de base prêt vous aidera à suivre plus facilement.

Étape 1 – Configuration du projet Back4app

Créer un nouveau projet

La première étape pour construire votre backend Vanilla JavaScript sur Back4app consiste à créer un nouveau projet. Si vous ne l'avez pas encore fait, suivez ces étapes :

  1. Connectez-vous à votre compte Back4app.
  2. Cliquez sur le bouton “Nouvelle application” dans votre tableau de bord Back4app.
  3. Donnez un nom à votre application (par exemple, “VanillaJS-Backend-Tutorial”).
Document image


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.

Connectez le SDK Parse

Back4app s'appuie sur la plateforme Parse pour gérer vos données, fournir des fonctionnalités en temps réel, gérer l'authentification des utilisateurs, et plus encore. Connecter votre application Vanilla JavaScript à Back4app peut se faire en incluant le SDK Parse dans votre HTML ou en l'installant avec npm si vous exécutez un processus de construction.

Récupérez vos clés Parse: Dans votre tableau de bord Back4app, accédez à la section “Paramètres de l'application” ou “Sécurité & Clés” de votre application pour trouver votre ID d'application et Clé JavaScript. Vous trouverez également l' URL du serveur Parse (souvent au format https://parseapi.back4app.com).

Document image


Option 1 : Ajouter Parse via une balise script Ajoutez ce script à votre index.html (remplacez VERSION par une version valide du dépôt SDK JS de Parse):

HTML


Option 2 : Utiliser NPM (si vous avez un processus de construction)

Bash


Ensuite, dans votre fichier JavaScript principal (par exemple, main.js):

JS


En complétant cette étape, vous avez établi une connexion sécurisée entre votre front-end JavaScript Vanilla et le backend Back4app. Toutes les demandes et transactions de données sont acheminées en toute sécurité via ce SDK, réduisant la complexité des appels REST ou GraphQL manuels (bien que vous puissiez toujours les utiliser si nécessaire).

Étape 2 – Configuration de la base de données

Sauvegarde et requête de données

Avec votre projet Back4app configuré et le SDK Parse intégré dans votre code JavaScript, vous pouvez maintenant commencer à sauvegarder et à récupérer des données. La manière la plus simple de créer un enregistrement est d'utiliser la Parse.Object classe:

JS


Alternativement, vous pouvez utiliser les points de terminaison de l'API REST de Back4app :

Bash


Back4app fournit également une interface GraphQL :

GraphQL


Ces options diverses vous permettent d'intégrer des opérations de données de la manière qui convient le mieux à votre processus de développement – que ce soit via le SDK Parse, REST ou GraphQL.

Conception de schéma et types de données

Par défaut, Parse permet la création de schéma à la volée, mais vous pouvez également définir vos classes et types de données dans le tableau de bord Back4app pour plus de contrôle.

  1. Naviguez vers la section “Base de données” dans votre tableau de bord Back4app.
  2. Créez une nouvelle classe (par exemple, “Todo”) et ajoutez des colonnes pertinentes, telles que titre (String) et isCompleted (Boolean).
Créer une nouvelle classe
Créer une nouvelle classe


Back4app prend également en charge divers types de données : String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, et Polygon. Vous pouvez choisir le type approprié pour chaque champ. Si vous le souhaitez, vous pouvez également laisser Parse créer automatiquement ces colonnes lorsque vous enregistrez un objet pour la première fois depuis votre code JavaScript.

Créer une colonne
Créer une colonne


Back4app propose un agent IA qui peut vous aider à concevoir votre modèle de données :

  1. Ouvrez l'agent IA depuis votre tableau de bord d'application ou dans le menu.
  2. Décrivez votre modèle de données dans un langage simple (par exemple, “Veuillez créer une nouvelle application ToDo sur back4app avec un schéma de classe complet.”).
  3. Laissez l'agent IA créer le schéma pour vous.
Document image


Utiliser l'agent IA peut vous faire gagner du temps lors de la configuration de votre architecture de données et garantir la cohérence de votre application.

Données relationnelles

Si vous avez des données relationnelles – disons, un Catégorie objet qui pointe vers plusieurs Todo éléments – vous pouvez utiliser des Pointeurs ou des Relations dans Parse. Par exemple, ajouter un pointeur à une Catégorie:

JS


Lorsque vous interrogez, vous pouvez également inclure des données de pointeur :

JS


Cet include('category') appel récupère les détails de la catégorie avec chaque Todo, rendant vos données relationnelles facilement accessibles.

Requêtes en direct

Pour des mises à jour en temps réel, Back4app fournit des Requêtes en direct. Dans votre application JavaScript Vanilla, vous pouvez vous abonner aux changements dans une classe spécifique :

  1. Activer les Requêtes en direct dans votre tableau de bord Back4app sous les Paramètres du serveur. Assurez-vous que les “Requêtes en direct” sont activées.
  2. Initialiser une souscription de Requête en direct dans votre code :
src/parseConfig.js

JS


En vous abonnissant, vous recevez des notifications en temps réel chaque fois qu'une nouvelle Todo est créée, mise à jour ou supprimée. Cette fonctionnalité est particulièrement précieuse pour les applications collaboratives ou dynamiques où plusieurs utilisateurs doivent voir les dernières données sans actualiser la page.

Étape 3 – Application de la sécurité avec les ACL et les CLP

Mécanisme de sécurité Back4app

Back4app prend la sécurité au sérieux en fournissant Listes de Contrôle d'Accès (ACL) et Permissions au Niveau de la Classe (CLP). Ces fonctionnalités vous permettent de restreindre qui peut lire ou écrire des données sur une base par objet ou par classe, garantissant que seuls les utilisateurs autorisés peuvent modifier vos données.

Document image


Listes de Contrôle d'Accès (ACL)

Une ACL est appliquée à des objets individuels pour déterminer quels utilisateurs, rôles ou le public peuvent effectuer des opérations de lecture/écriture. Par exemple :

JS


Lorsque vous enregistrez l'objet, il a une ACL qui empêche quiconque sauf l'utilisateur spécifié de le lire ou de le modifier.

Modifier l'ACL
Modifier l'ACL


Autorisations au niveau de la classe (CLPs)

CLPs régissent les autorisations par défaut d'une classe entière, telles que la possibilité de lire ou d'écrire publiquement, ou si seuls certains rôles peuvent y accéder.

  1. Allez sur votre tableau de bord Back4app, sélectionnez votre application et ouvrez la base de données section.
  2. Sélectionnez une classe (par exemple, “Todo”).
  3. Ouvrez les autorisations au niveau de la classe onglet.
  4. Configurez vos valeurs par défaut, telles que “Nécessite une authentification” pour lire ou écrire, ou “Aucun accès” pour le public.
Document image


Ces autorisations établissent la base, tandis que les ACL affinent les autorisations pour des objets individuels. Un modèle de sécurité robuste combine généralement à la fois les CLPs (restrictions larges) et les ACL (restrictions fines par objet). Pour plus d'informations, allez à Directives de sécurité de l'application.

Étape 4 – Écriture et déploiement de fonctions cloud

Le Cloud Code est une fonctionnalité de l'environnement Parse Server qui vous permet d'exécuter du code JavaScript personnalisé côté serveur – sans avoir besoin de gérer vos serveurs ou votre infrastructure. En écrivant du Cloud Code, vous pouvez étendre votre backend Back4app avec une logique métier supplémentaire, des validations, des déclencheurs et des intégrations qui s'exécutent de manière sécurisée et efficace sur le Parse Server.

Comment ça fonctionne

Lorsque vous écrivez du Cloud Code, vous placez généralement vos fonctions JavaScript, déclencheurs et tous les modules NPM requis dans un main.js (ou app.js) fichier. Ce fichier est ensuite déployé dans votre projet Back4app, qui s'exécute dans l'environnement Parse Server. Étant donné que ces fonctions et déclencheurs s'exécutent sur le serveur, vous pouvez leur faire confiance pour gérer une logique confidentielle, traiter des données sensibles ou effectuer des appels API réservés au backend – des processus que vous ne voudriez peut-être pas exposer directement au client.

Tout le Cloud Code pour votre application Back4app s'exécute à l'intérieur du Parse Server géré par Back4app, donc vous n'avez pas à vous soucier de la maintenance du serveur, de la mise à l'échelle ou de l'approvisionnement. Chaque fois que vous mettez à jour et déployez votre fichier main.js, le Parse Server en cours d'exécution est mis à jour avec votre dernier code.

Structure du fichier main.js Un main.js typique pourrait contenir :

  1. Exiger des déclarations pour tous les modules nécessaires (packages NPM, modules Node intégrés ou autres fichiers de code cloud).
  2. Définitions de fonctions cloud utilisant Parse.Cloud.define().
  3. Déclencheurs tels que Parse.Cloud.beforeSave(), Parse.Cloud.afterSave(), etc.
  4. Modules NPM que vous avez installés (si nécessaire). Par exemple, vous pourriez installer un package comme axios pour effectuer des requêtes HTTP. Vous pouvez ensuite l'exiger (ou l'importer) en haut de votre fichier.
JS


Avec la possibilité d'installer et d'utiliser des modules NPM, le code cloud devient incroyablement flexible, vous permettant de vous intégrer à des API externes, d'effectuer des transformations de données ou d'exécuter une logique complexe côté serveur.

Cas d'utilisation typiques

  • Logique métier: Par exemple, vous pouvez calculer le score d'un utilisateur dans un jeu en agrégeant plusieurs propriétés d'objet, puis stocker ces données automatiquement.
  • Validations de données: Assurez-vous que certains champs sont présents ou qu'un utilisateur a les bonnes autorisations avant de sauvegarder ou de supprimer un enregistrement.
  • Déclencheurs: Effectuez des actions lorsque les données changent (par exemple, envoyez une notification lorsqu'un utilisateur met à jour son profil).
  • Intégrations: Connectez-vous à des API ou services tiers. Par exemple, vous pourriez vous intégrer à des passerelles de paiement, des notifications Slack ou des plateformes de marketing par e-mail directement depuis Cloud Code.
  • Application de la sécurité: Ajoutez une couche supplémentaire de sécurité en validant et en nettoyant les paramètres d'entrée dans vos fonctions Cloud Code. Par exemple, vous pouvez vous assurer que les données entrantes correspondent à des formats spécifiques, rejeter les entrées invalides ou malveillantes, et appliquer des règles d'accès basées sur les rôles ou les autorisations des utilisateurs avant d'effectuer des opérations sensibles.

Déployez votre fonction

Ci-dessous se trouve une fonction Cloud Code simple qui calcule la longueur d'une chaîne de texte envoyée par le client :

main.js


Déploiement via le Back4app CLI:

1 - Installez le CLI :

  • Pour Linux/MacOS:
Bash

Bash


3 - Déployez votre code cloud:

Bash


Déploiement via le tableau de bord:

  1. Dans le tableau de bord de votre application, allez à Cloud Code > Fonctions.
  2. Copiez/collez la fonction dans l'éditeur main.js.
  3. Cliquez sur Déployer.
Document image


Appeler votre fonction

Depuis JavaScript Vanilla en utilisant le SDK Parse (en supposant que vous avez configuré Parse comme ci-dessus) :

JS


Vous pouvez également l'appeler via REST :

Bash


Ou via GraphQL :

GraphQL


Cette flexibilité vous permet d'intégrer votre logique personnalisée dans votre frontend JavaScript Vanilla ou tout autre client qui prend en charge REST ou GraphQL.

Étape 5 – Configuration de l'authentification des utilisateurs

Authentification des utilisateurs dans Back4app

Back4app utilise la classe Parse User comme base pour l'authentification. Par défaut, Parse gère le hachage des mots de passe, les jetons de session et le stockage sécurisé. Cela signifie que vous n'avez pas à configurer manuellement des flux de sécurité complexes.

Configuration de l'authentification des utilisateurs

Dans une configuration JavaScript Vanilla, vous pouvez créer un nouvel utilisateur avec :

JS


Connectez un utilisateur existant :

JS


Via REST, une connexion pourrait ressembler à :

Bash


Gestion de session

Après une connexion réussie, Parse crée un jeton de session qui est stocké dans l'objet utilisateur. Vous pouvez accéder à l'utilisateur actuellement connecté :

JS


Parse gère automatiquement les sessions basées sur des jetons en arrière-plan, mais vous pouvez également les gérer ou les révoquer manuellement. Cela est utile lorsque vous devez vous déconnecter :

JS


Intégration de la connexion sociale

Back4app et Parse peuvent s'intégrer avec des fournisseurs OAuth populaires, tels que Google ou Facebook, en installant des packages supplémentaires ou en utilisant des adaptateurs existants. Par exemple, vous pouvez configurer une connexion Facebook en configurant votre ID d'application Facebook et en utilisant Parse.FacebookUtils.logIn(). Les instructions détaillées varient, alors référez-vous aux Docs de connexion sociale.

JS


Vérification par e-mail et réinitialisation du mot de passe

Pour activer la vérification par e-mail et la réinitialisation du mot de passe :

  1. Accédez aux paramètres d'e-mail dans votre tableau de bord Back4app.
  2. Activez la vérification par e-mail pour garantir que les nouveaux utilisateurs vérifient la propriété de leurs adresses e-mail.
  3. Configurez l'adresse d'expédition, les modèles d'e-mail et votre domaine personnalisé si désiré.

Ces fonctionnalités améliorent la sécurité des comptes et l'expérience utilisateur en validant la propriété des e-mails par les utilisateurs et en fournissant une méthode de récupération de mot de passe sécurisée.

Étape 6 – Gestion du stockage de fichiers

Téléchargement et récupération de fichiers

Parse inclut la Parse.File classe pour gérer les téléchargements de fichiers, que Back4app stocke de manière sécurisée :

JS


Ces fonctionnalités améliorent la sécurité des comptes et l'expérience utilisateur en validant la propriété des e-mails par les utilisateurs et en fournissant une méthode de récupération de mot de passe sécurisée.

Pour attacher le fichier à un objet dans la base de données, vous pouvez faire :

JS


Récupérer l'URL du fichier est simple :

JS


Vous pouvez afficher cet imageUrl sur votre page web en le définissant comme le src d'un <img> tag.

Sécurité des fichiers

Parse Server fournit des configurations flexibles pour gérer la sécurité des téléchargements de fichiers. L'exemple suivant montre comment vous pouvez définir des autorisations pour contrôler qui peut télécharger des fichiers sur le serveur :

{ "fileUpload": { "enableForPublic": true, "enableForAnonymousUser": true, "enableForAuthenticatedUser": true } }

  • enableForPublic: Lorsqu'il est défini sur true, permet à quiconque, quel que soit son statut d'authentification, de télécharger des fichiers.
  • enableForAnonymousUser: Contrôle si les utilisateurs anonymes (non inscrits) peuvent télécharger des fichiers. Lorsqu'il est activé, les utilisateurs temporaires ou invités peuvent télécharger des fichiers.
  • enableForAuthenticatedUser: Spécifie si seuls les utilisateurs authentifiés peuvent télécharger des fichiers. Cela est idéal pour s'assurer que seuls les utilisateurs de confiance ont accès à cette fonctionnalité.

Étape 7 – Planification des tâches avec les Cloud Jobs

Cloud Jobs

Emplois Cloud dans Back4app vous permet de planifier et d'exécuter des tâches de routine sur votre backend – comme nettoyer les anciennes données ou envoyer un e-mail récapitulatif quotidien. Un emploi Cloud typique pourrait ressembler à ceci :

JS

  1. Déployez votre code Cloud avec le nouvel emploi (via CLI ou le tableau de bord).
  2. Allez sur le tableau de bord Back4app > Paramètres de l'application > Paramètres du serveur > Tâches d'arrière-plan.
  3. Planifiez l'emploi pour s'exécuter quotidiennement ou à tout autre intervalle qui convient à vos besoins.
Planification d'un emploi Cloud
Planification d'un emploi Cloud


Les emplois Cloud vous permettent d'automatiser la maintenance en arrière-plan ou d'autres processus périodiques – sans nécessiter d'intervention manuelle.

Étape 8 – Intégration des Webhooks

Webhooks permettent à votre application Back4app d'envoyer des requêtes HTTP à un service externe chaque fois que certains événements se produisent. C'est puissant pour s'intégrer à des systèmes tiers comme des passerelles de paiement (par exemple, Stripe), des outils de marketing par e-mail ou des plateformes d'analyse.

  1. Accédez à la configuration des Webhooks dans votre tableau de bord Back4app > Plus > WebHooks, puis cliquez sur Ajouter un Webhook.
  2. Configurez un point de terminaison (par exemple, https://your-external-service.com/webhook-endpoint).
  3. Configurez des déclencheurs pour spécifier quels événements dans vos classes Back4app ou fonctions Cloud Code déclencheront le webhook.
Ajout d'un Webhook
Ajout d'un Webhook


Par exemple, si vous souhaitez notifier un canal Slack chaque fois qu'un nouveau Todo est créé :

  • Créez une application Slack qui accepte les webhooks entrants.
  • Copiez l'URL du webhook Slack.
  • Dans votre tableau de bord Back4app, définissez le point de terminaison sur cette URL Slack pour l'événement « Nouvel enregistrement dans la classe Todo. »
  • Vous pouvez également ajouter des en-têtes HTTP ou des charges utiles personnalisées si nécessaire.

Vous pouvez également définir des Webhooks dans Cloud Code en effectuant des requêtes HTTP personnalisées dans des déclencheurs comme beforeSave, afterSave :

WebHook BeforeSave
WebHook BeforeSave


Étape 9 – Exploration du panneau d'administration Back4app

L' Application d'administration Back4app est une interface de gestion basée sur le web conçue pour les utilisateurs non techniques afin d'effectuer des opérations CRUD et de gérer des tâches de données courantes sans écrire de code. Elle fournit une interface centrée sur le modèle, conviviale qui rationalise l'administration de la base de données, la gestion des données personnalisées et les opérations de niveau entreprise.

Activation de l'application d'administration

Activez cela en allant dans Tableau de bord de l'application > Plus > Application d'administration et en cliquant sur le bouton “Activer l'application d'administration”.

Activer l'application d'administration
Activer l'application d'administration


Créer un premier utilisateur administrateur (nom d'utilisateur/mot de passe), ce qui génère automatiquement un nouveau rôle (B4aAdminUser) et des classes (B4aSetting, B4aMenuItem et B4aCustomField) dans le schéma de votre application.

Document image


Choisissez un sous-domaine pour accéder à l'interface d'administration et complétez la configuration.

Document image


Connectez-vous en utilisant les identifiants administratifs que vous avez créés pour accéder à votre nouveau tableau de bord de l'application Admin.

Document image


Une fois activée, l'application Admin Back4app facilite la visualisation, l'édition ou la suppression d'enregistrements de votre base de données – sans nécessiter l'utilisation directe du tableau de bord Parse ou du code backend. Avec des contrôles d'accès configurables, vous pouvez partager en toute sécurité cette interface avec des membres de l'équipe ou des clients qui ont besoin d'une manière claire et simple de gérer les données.

Conclusion

En suivant ce tutoriel complet, vous avez :

  • Créé un backend sécurisé pour une application JavaScript Vanilla sur Back4app.
  • Configuré une base de données avec des schémas de classe, des types de données et des relations.
  • Intégré des requêtes en temps réel (Requêtes en direct) pour des mises à jour de données immédiates.
  • Appliqué des mesures de sécurité en utilisant des ACL et des CLP pour protéger et gérer l'accès aux données.
  • Implémenté des fonctions Cloud Code pour exécuter une logique métier personnalisée côté serveur.
  • Mis en place l'authentification des utilisateurs avec prise en charge de la vérification par e-mail et des réinitialisations de mot de passe.
  • Géré les téléchargements de fichiers et la récupération, avec des contrôles de sécurité des fichiers en option.
  • Planifié des tâches Cloud pour des tâches d'arrière-plan automatisées.
  • Utilisé des Webhooks pour s'intégrer à des services externes.
  • Exploré le panneau d'administration Back4app pour la gestion des données.

Avec un solide front-end JavaScript Vanilla et un backend Back4app robuste, vous êtes maintenant bien équipé pour développer des applications riches en fonctionnalités, évolutives et sécurisées. Continuez à explorer des fonctionnalités plus avancées, intégrez votre logique métier et exploitez la puissance de Back4app pour vous faire gagner d'innombrables heures dans l'administration des serveurs et des bases de données. Bon codage!

Prochaines étapes

  • Construire une application JavaScript prête pour la production en étendant ce backend pour gérer des modèles de données plus complexes, des stratégies de mise en cache et des optimisations de performance.
  • Intégrer des fonctionnalités avancées telles que des flux d'authentification spécialisés, un contrôle d'accès basé sur les rôles ou des API externes (comme des passerelles de paiement).
  • Consultez la documentation officielle de Back4app pour des plongées plus profondes dans la sécurité avancée, le réglage des performances et l'analyse des journaux.
  • Explorez d'autres tutoriels sur les applications de chat en temps réel, les tableaux de bord IoT ou les services basés sur la localisation. Vous pouvez combiner les techniques apprises ici avec des API tierces pour créer des applications complexes et réelles.