Quickstarters
Feature Overview
Comment construire un backend pour Deno ?
35 min
introduction dans ce tutoriel, vous apprendrez à construire un backend pour deno en utilisant back4app nous passerons en revue chaque étape pour intégrer les fonctionnalités clés de back4app base de données, api rest, authentification des utilisateurs, stockage de fichiers et requêtes en temps réel, dans un environnement deno vous verrez comment communiquer avec back4app via des points de terminaison rest et créer une infrastructure complète sans gérer les serveurs vous même lorsque vous utilisez back4app, vous pouvez éviter de configurer manuellement des serveurs avec deno, ce qui vous fait gagner du temps et des efforts vous vous concentrerez sur l'écriture d'un code plus simple, grâce à la bibliothèque standard de deno et à son approche moderne à la fin de ce guide sur la construction d'un backend pour deno, vous aurez un chemin clair pour intégrer une sécurité avancée, du code cloud et des tâches planifiées dans votre application deno une fois que vous aurez terminé ce tutoriel, vous serez en mesure de faire fonctionner le serveur, de gérer les api rest, d'intégrer l'authentification des utilisateurs, de stocker des fichiers et de planifier des tâches facilement vous comprendrez également comment gérer vos données avec l'approche fetch de deno en utilisant l'api rest de back4app prérequis un compte back4app et un nouveau projet back4app commencer avec back4app https //www back4app com/docs/get started/new parse app si vous n'avez pas de compte, vous pouvez en créer un gratuitement utilisez le lien ci dessus pour préparer votre projet installer deno vous pouvez obtenir deno à https //deno land https //deno land installez deno sur votre système d'exploitation et confirmez le avec deno version familiarité avec les concepts de base de deno comme les modules, les systèmes de fichiers, deno run allow net , ou comment importer des modules d'application de la bibliothèque standard connaissances de base des api rest nous utiliserons des appels fetch et le type de contenu des en têtes pour la gestion des données, donc assurez vous de connaître les fondamentaux de rest et json assurez vous d'avoir ces prérequis avant de commencer avoir votre projet back4app configuré et votre environnement deno local en cours d'exécution vous permettra de suivre ce tutoriel sans problème étape 1 – créer un nouveau projet sur back4app et se connecter créer un nouveau projet la base de votre backend deno est un projet back4app si vous ne l'avez pas encore créé connectez vous à votre compte back4app cliquez sur le bouton “nouvelle application” dans votre tableau de bord back4app donnez un nom à votre application (par exemple, “deno backend tutorial”) une fois votre projet prêt, il apparaîtra dans votre tableau de bord back4app ce projet est l'endroit où vous configurerez les bases de données, la sécurité et les api connectez vous à back4app via rest puisque nous n'avons pas de sdk parse pour deno, nous utiliserons les points de terminaison de l'api rest de back4app vous pouvez trouver l’ id d'application , l’ clé api rest , et l’ url du serveur dans les paramètres de l'application ou la section sécurité et clés de votre application tout au long de ce tutoriel, nous utiliserons fetch pour envoyer des requêtes de deno à back4app assurez vous d'inclure votre clé api et le type de contenu des en têtes dans chaque appel étape 2 – configuration de la base de données dans cette étape, vous allez créer un modèle de données sur back4app et interagir avec lui en utilisant des api rest depuis deno création d'un modèle de données allez dans la section “base de données” de votre tableau de bord back4app cliquez sur “créer une nouvelle classe” et nommez la, par exemple, “todo ” ajoutez des colonnes pertinentes (par exemple, titre (string), estcomplété (boolean)) vous pouvez également permettre à parse de créer ces colonnes automatiquement lorsque les données sont enregistrées créer un modèle de données avec l'agent ia l'agent ia de back4app peut concevoir votre schéma pour vous ouvrez l'agent ia dans votre tableau de bord back4app décrivez votre modèle de données (par exemple, “créer une classe todo avec un titre, une description et un champ iscompleted ”) permettez à l'agent de générer le schéma automatiquement cela vous aide à gérer des schémas plus complexes rapidement lire et écrire des données en utilisant l'api rest depuis deno, vous pouvez exécuter le serveur en appelant les points de terminaison rest avec fetch par exemple, pour créer un todo // file called createtodo ts export async function createtodoitem(title string, iscompleted boolean) { const url = "https //parseapi back4app com/classes/todo"; const body = json stringify({ title, iscompleted }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); if (!response ok) { throw new error(`error saving todo ${response statustext}`); } const result = await response json(); return result; } pour récupérer les todos // file called fetchtodos ts export async function fetchtodos() { const url = "https //parseapi back4app com/classes/todo"; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); if (!response ok) { throw new error(`error fetching todos ${response statustext}`); } const result = await response json(); return result; } vous pouvez exécuter ces commandes avec deno run allow net createtodo ts lecture et écriture de données en utilisant l'api graphql back4app fournit également un point de terminaison graphql https //parseapi back4app com/graphql // file called createtodographql ts export async function createtodographql(title string) { const mutation = ` mutation { createtodo(input { fields { title "${title}" iscompleted false } }) { todo { objectid title iscompleted } } } `; const response = await fetch("https //parseapi back4app com/graphql", { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body json stringify({ query mutation }), }); const result = await response json(); return result; } travailler avec des requêtes en direct (optionnel) les requêtes en direct vous mettent à jour en temps réel, mais deno n'a pas de bibliothèque parse livequery native vous pouvez toujours configurer la fonctionnalité de requête en direct dans votre tableau de bord back4app pour d'autres clients ou utiliser un websocket dans deno pour vous abonner manuellement pour plus de détails, voir la documentation des requêtes en direct https //www back4app com/docs/platform/live queries étape 3 – appliquer la sécurité avec les acl et les clp aperçu les acl (listes de contrôle d'accès) et les clp (permissions au niveau de la classe) de back4app protègent vos données utilisez les clp pour définir des règles par défaut pour une classe entière ensuite, utilisez les acl pour des restrictions au niveau des objets configuration des permissions au niveau de la classe ouvrez la base de données section dans votre tableau de bord back4app sélectionnez une classe (par exemple, “todo”) allez dans les autorisations au niveau de la classe onglet activez ou désactivez l'accès en lecture/écriture pour le public ou pour les utilisateurs authentifiés selon les besoins configuration des acl lors de la création ou de la mise à jour d'un objet via rest, vous pouvez inclure un attribut acl dans le corps de la requête par exemple const body = json stringify({ title "private task", acl { " " { "read" false, "write" false }, "role\ admins" { "read" true, "write" true }, } }); cet exemple ne permet qu'au rôle “admins” de lire ou d'écrire l'accès public est désactivé étape 4 – écriture de fonctions cloud code pourquoi cloud code cloud code est l'endroit où vous stockez la logique sécurisée côté serveur vous ne gérez pas les serveurs vous même vous pouvez ajouter des validations ou des déclencheurs pour des classes spécifiques exemple de fonction cloud code vous pouvez définir une fonction cloud (en javascript) et la déployer sur votre application par exemple, une fonction pour vérifier la longueur du texte pourrait être parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "text parameter is required"; } return { length text length }; }); déploiement vous pouvez déployer du code via le back4app cli https //www back4app com/docs/local development/parse cli ou le panneau cloud code dans votre tableau de bord back4app npm sur cloud code vous pouvez importer des bibliothèques externes avec require() une fois déployé, l'environnement serveur les exécutera cela est utile pour des tâches avancées, mais n'oubliez pas que les exécuter depuis deno est séparé de votre environnement cloud code sur back4app étape 5 – configuration de l'authentification activer l'authentification back4app utilise la classe parse user pour l'authentification pendant que vous travaillez avec deno, vous pouvez appeler des points de terminaison rest pour gérer les utilisateurs s'inscrire et se connecter en utilisant rest async function signupuser(username string, password string, email string) { const url = "https //parseapi back4app com/users"; const body = json stringify({ username, password, email }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); return await response json(); } async function loginuser(username string, password string) { const url = `https //parseapi back4app com/login?username=${username}\&password=${password}`; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); return await response json(); } connexion sociale vous pouvez configurer google, facebook, apple et d'autres fournisseurs sur back4app ensuite, vous appellerez les points de terminaison dédiés avec des jetons oauth voir la documentation de connexion sociale de back4app https //www back4app com/docs/platform/sign in with apple pour plus de détails étape 6 – gestion du stockage de fichiers télécharger et récupérer des fichiers pour télécharger des fichiers depuis deno, utilisez une requête post vers https //parseapi back4app com/files/\<filename> par exemple async function uploadfile(filedata uint8array, filename string) { const url = `https //parseapi back4app com/files/${filename}`; const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "image/png", }, body filedata, }); return await response json(); } vous pouvez ensuite stocker l'url du fichier résultant dans vos objets de classe cette méthode est parfaite pour stocker des images ou des documents pendant que vous exécutez le serveur dans deno étape 7 – vérification de l'email et réinitialisation du mot de passe aperçu la vérification des emails garantit un accès légitime la réinitialisation du mot de passe aide les utilisateurs à retrouver un accès sécurisé configuration du tableau de bord activer la vérification par email dans votre tableau de bord back4app sous paramètres d'email personnaliser vos modèles de vérification activer la réinitialisation du mot de passe et définir votre mise en page d'email préférée lorsqu'un utilisateur s'inscrit, il reçoit un lien de vérification si vous avez activé la vérification par e mail pour réinitialiser le mot de passe, appelez le point de terminaison rest post /requestpasswordreset étape 8 – planification des tâches avec les travaux cloud aperçu des travaux cloud les travaux cloud s'exécutent périodiquement sans intervention humaine par exemple, vous pouvez supprimer des anciens enregistrements quotidiennement ou envoyer des rappels par e mail réguliers parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now\ valueof() thirty days); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); après avoir déployé ce travail, vous pouvez le planifier dans paramètres de l'application > paramètres du serveur > travaux en arrière plan sur votre tableau de bord back4app étape 9 – intégration des webhooks définition un webhook est un rappel http déclenché lorsque des événements se produisent, tels que la création ou la mise à jour d'objets vous pouvez vous intégrer à slack, stripe ou tout service externe configuration ouvrez “plus” > “webhooks” dans le tableau de bord back4app cliquez sur “ajouter un webhook” et fournissez le point de terminaison de votre service tiers définissez quels déclencheurs ou classes vous souhaitez envoyer des requêtes cela permet aux systèmes externes de recevoir des données chaque fois que vous créez ou modifiez des objets dans back4app étape 10 – exploration du panneau d'administration back4app introduction au panneau d'administration les équipes non techniques peuvent utiliser ce panneau pour gérer les données visuellement il simplifie les opérations crud et les revues de données comment activer allez dans le tableau de bord de l'application > plus > application admin et choisissez “activer l'application admin ” créez un utilisateur administrateur pour vous connecter définissez un sous domaine pour votre application admin vous pouvez ensuite vous connecter à l'application admin pour gérer les enregistrements en toute sécurité conclusion dans ce tutoriel, vous avez découvert comment construire un backend pour deno sur back4app vous avez créé des modèles de données, géré l'authentification des utilisateurs, appris sur les acl et les clp pour la sécurité, et programmé des tâches cloud vous avez également vu comment intégrer des api externes via des webhooks et comment exécuter le serveur ou les api rest avec des commandes deno run allow net cette configuration vous permet de démarrer rapidement sans configurer manuellement des systèmes de fichiers ou des complexités de bibliothèque standard pour l'architecture serveur prochaines étapes développez votre application deno avec des points de terminaison supplémentaires et une logique avancée utilisant cloud code intégrez plus de services (par exemple, passerelles de paiement, analyses) avec vos données back4app référez vous à la documentation officielle de back4app pour des conseils plus approfondis sur la sécurité, la performance et l'analyse des journaux expérimentez avec des fonctionnalités avancées en temps réel ou le stockage kv de deno, reliant les données entre votre runtime deno et l'environnement robuste de back4app avec vos nouvelles connaissances, vous pouvez déployer en toute confiance un backend deno sécurisé, évolutif et riche en fonctionnalités soutenu par back4app