Quickstarters
Feature Overview
Comment construire un backend pour Astro ?
21 min
introduction dans ce guide sur comment construire un backend pour astro , vous apprendrez à créer un backend complet en utilisant back4app pour votre projet astro nous aborderons l'intégration des fonctionnalités importantes de back4app, y compris la gestion de base de données, les fonctions cloud, l'authentification, le stockage de fichiers, les requêtes en temps réel, et plus encore—démontrant une approche pratique pour construire des applications rapides avec des outils modernes en tirant parti de l'environnement de back4app, vous évitez beaucoup de travail lourd, comme la configuration des serveurs ou l'écriture de couches de sécurité à partir de zéro cette configuration vous fait gagner du temps et des efforts, tout en vous permettant de définir un point de terminaison pour une logique côté serveur robuste vous verrez également comment incorporer des variables d'environnement dans votre projet astro, facilitant ainsi le stockage sécurisé des identifiants ou d'autres données sensibles une fois que vous aurez terminé, vous disposerez d'une structure backend évolutive pour astro et saurez comment gérer les données avec rest, graphql, l'authentification des utilisateurs, les événements en temps réel, et plus encore vous serez prêt à ajouter votre propre logique pour tous les besoins du monde réel tout en conservant une solide fondation de sécurité prérequis un compte back4app et un nouveau projet back4app commencer avec back4app https //www back4app com/docs/get started/new parse app un projet astro configurer astro https //docs astro build/en/getting started/ assurez vous d'avoir un environnement de développement astro de base et node js installé node js (version 14 ou supérieure) installé installer node js https //nodejs org/en/download/ familiarité avec les concepts de front end et de serveur vous devez savoir comment créer ou modifier des fichiers astro , gérer les variables d'environnement et effectuer une simple requête post avec fetch ou une bibliothèque similaire assurez vous que ces prérequis sont en place avant de commencer avoir votre compte back4app, un environnement astro et des connaissances de base en javascript vous aidera à suivre ce tutoriel plus facilement étape 1 – création d'un nouveau projet sur back4app et connexion créer un nouveau projet connectez vous à votre compte back4app cliquez sur nouvelle application dans votre tableau de bord back4app et donnez lui un nom (par exemple, “astro backend tutorial”) récupérer les identifiants back4app dans votre tableau de bord back4app, sous paramètres de l'application ou sécurité et clés , notez votre id d'application , clé api rest , et l'url du serveur ( https //parseapi back4app com par défaut) ces variables d'environnement seront utilisées dans votre intégration astro connecter astro à back4app via les api puisque nous n'utilisons pas directement le sdk parse, nous ferons des requêtes en utilisant fetch ou une autre bibliothèque depuis nos fichiers astro stockez vos identifiants dans des variables d'environnement pour des raisons de sécurité par exemple, dans un env fichier étape 2 – configuration de la base de données création d'un modèle de données créer manuellement un modèle de données allez sur votre tableau de bord back4app et cliquez sur base de données créez une nouvelle classe (par exemple, “todo”), et ajoutez des champs comme title (string) et iscompleted (boolean) utilisez l'agent ia pour créer un modèle de données ouvrez l'agent ia depuis votre tableau de bord d'application décrivez votre schéma en langage simple (par exemple, “créez une nouvelle application todo avec une classe qui a des champs title et iscompleted ”) l'agent générera la classe et les champs pour vous lecture et écriture de données en utilisant l'api rest avec votre modèle de données prêt, définissons un point de terminaison à l'intérieur d'un composant astro ou d'un fichier côté serveur pour gérer une requête post et une requête de lecture par exemple, vous pourriez créer un fichier comme src/pages/api/todos astro \ import type { apiroute } from 'astro'; export const post apiroute = async ({ request }) => { const body = await request json(); // "create" a todo const url = `${import meta env back4app server url}/classes/todo`; const response = await fetch(url, { method 'post', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key, 'content type' 'application/json' }, body json stringify({ title body title, iscompleted body iscompleted }) }); const data = await response json(); return new response(json stringify(data), { status 200 }); }; export const get apiroute = async () => { // "read" all todos const url = `${import meta env back4app server url}/classes/todo`; const response = await fetch(url, { method 'get', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key } }); const data = await response json(); return new response(json stringify(data), { status 200 }); }; \ \<html lang="en"> \<head> \<meta name="viewport" content="width=device width, initial scale=1 0" /> \<link rel="icon" type="image/svg+xml" href="/favicon svg" /> \<meta name="generator" content="astro generator" /> \<title>todos api\</title> \</head> \<body> \<h1>api for todo\</h1> \</body> \</html> cet exemple utilise des variables d'environnement ( import meta env ) pour stocker vos identifiants back4app nous définissons deux méthodes dans un fichier export const post pour créer un todo, et export const get pour récupérer tous les todos vous pouvez l'adapter pour convenir à la structure de votre composant de mise en page et aux autres pages du site lecture et écriture de données en utilisant l'api graphql de même, vous pouvez effectuer des requêtes graphql depuis vos pages astro \ export async function post({ request }) { const body = await request json(); const url = `${import meta env back4app server url}/graphql`; const query = ` mutation { createtodo(input { fields { title "${body title}" iscompleted ${body iscompleted} } }) { todo { objectid title iscompleted } } } `; const response = await fetch(url, { method 'post', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key, 'content type' 'application/json' }, body json stringify({ query }) }); const data = await response json(); return new response(json stringify(data), { status 200 }); } \ \<html lang="en"> \<head> \<meta name="viewport" content="width=device width, initial scale=1 0" /> \<link rel="icon" type="image/svg+xml" href="/favicon svg" /> \<title>todos graphql\</title> \</head> \<body> \<h1>graphql endpoint for todos\</h1> \</body> \</html> travailler avec des requêtes en direct (optionnel) les requêtes en direct permettent des mises à jour en temps réel de vos données pour les utiliser, activez les requêtes en direct dans le tableau de bord back4app et configurez une connexion websocket cependant, si vous construisez un site astro statique, vous pourriez intégrer des mises à jour en temps réel via des scripts côté client pointant vers wss\ //your subdomain b4a io les requêtes en direct peuvent pousser des changements à vos clients connectés chaque fois que des enregistrements sont créés, mis à jour ou supprimés étape 3 – appliquer la sécurité avec les acl et les clp les acl (listes de contrôle d'accès) et clp (permissions au niveau de la classe) sont fondamentales pour contrôler l'accès aux données vous pouvez les configurer dans la base de données section de votre tableau de bord back4app par exemple restreindre la lecture/écriture uniquement aux utilisateurs authentifiés utiliser des acl pour la sécurité par objet utilisez les directives de sécurité back4app https //www back4app com/docs/security/parse security pour garantir que vos données restent protégées vous pouvez également définir ces règles depuis le tableau de bord, garantissant que même si vos appels rest sont ouverts, seules les bonnes informations d'identification peuvent modifier ou voir les données étape 4 – écriture de fonctions cloud code pourquoi cloud code vous pouvez déplacer la logique métier clé côté serveur, évitant l'exposition de secrets ou la nécessité de maintenir des serveurs séparés le cloud code peut écouter des déclencheurs (beforesave, aftersave) ou gérer des points de terminaison personnalisés exemple // main js (cloud code) parse cloud define('greetuser', async (request) => { const username = request params name || 'guest'; return `hello, ${username}! welcome to the astro project `; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'todos must have a title '; } }); déployez cela via back4app cli https //www back4app com/docs/local development/parse cli ou directement dans la section cloud code de votre tableau de bord back4app appel de la fonction depuis astro, vous pouvez définir un point de terminaison qui utilise fetch pour atteindre votre fonction cloud \ export async function post({ request }) { const body = await request json(); const url = `${import meta env back4app server url}/functions/greetuser`; const response = await fetch(url, { method 'post', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key, 'content type' 'application/json' }, body json stringify({ name body name }) }); const data = await response json(); return new response(json stringify(data), { status 200 }); } \ \<html lang="en"> \<head> \<meta name="viewport" content="width=device width, initial scale=1 0" /> \<link rel="icon" type="image/svg+xml" href="/favicon svg" /> \<title>cloud code greet\</title> \</head> \<body> \<h1>greet function endpoint\</h1> \</body> \</html> étape 5 – configuration de l'authentification back4app utilise la user classe pour gérer les comptes utilisateurs avec rest, vous pouvez gérer les inscriptions, les connexions ou les déconnexions par exemple, l'inscription d'un nouvel utilisateur curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest key" \\ h "content type application/json" \\ d '{"username" "user1","password" "secret123","email" "user1\@example com"}' \\ https //parseapi back4app com/users vous pouvez répliquer cette logique depuis astro avec fetch de manière similaire, en utilisant des variables d'environnement une fois connecté, l'utilisateur reçoit un jeton de session pour les requêtes suivantes connexion sociale pour les fournisseurs sociaux (comme google ou apple), utilisez des points de terminaison spécifiques ou configurez le flux oauth consultez les docs de connexion avec apple https //www back4app com/docs/platform/sign in with apple ou d'autres guides de connexion sociale pour intégrer une authentification avancée cela est particulièrement utile si vous souhaitez permettre aux gens de se connecter depuis votre projet astro avec un minimum de friction étape 6 – gestion du stockage de fichiers pour stocker des fichiers dans back4app, vous les envoyez avec l'api rest par exemple curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest key" \\ h "content type image/png" \\ \ data binary "@path/to/local/image png" \\ https //parseapi back4app com/files/myimage png la réponse contient une url de fichier vous pouvez lier cette url à un enregistrement, comme un photo objet de classe, en vous assurant de suivre les références au fichier dans votre base de données vous pouvez également contrôler qui peut télécharger en ajustant les paramètres de sécurité des fichiers dans la configuration de votre application étape 7 – vérification par e mail et réinitialisation du mot de passe activer la vérification par e mail sous paramètres de l'application dans le tableau de bord back4app, activez la vérification par e mail et personnalisez votre modèle d'e mail de vérification configurer la réinitialisation du mot de passe de même, configurez vos e mails de réinitialisation de mot de passe et assurez vous que la user classe a des adresses e mail valides flux lorsqu'un utilisateur demande une réinitialisation depuis votre projet astro (via un appel api), back4app envoie automatiquement un e mail avec un lien sécurisé pour changer son mot de passe étape 8 – planification des tâches avec des travaux cloud utilisez cloud jobs pour planifier des tâches de maintenance répétées ou d'autres tâches // main js parse cloud job('cleanupoldtodos', async () => { const query = new parse query('todo'); const now = new date(); const thirty days = 30 24 60 60 1000; query lessthan('createdat', new date(now thirty days)); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); déployez votre code, puis planifiez le travail depuis paramètres du serveur > travaux en arrière plan dans la console back4app cela automatise des tâches comme le nettoyage des données, l'envoi d'e mails ou toute fonction de routine que vous souhaitez exécuter à des intervalles spécifiques étape 9 – intégration des webhooks les webhooks vous permettent de notifier des services externes lorsque certains événements se produisent dans votre application back4app par exemple, vous pouvez envoyer des données à slack chaque fois qu'un nouveau todo est créé allez à plus > webhooks dans votre tableau de bord back4app ajoutez un webhook pointant vers l'url slack sélectionnez l'événement (par exemple, objet créé dans la classe todo) cela permet un flux de requêtes/réponses pour garder vos systèmes externes synchronisés avec les données de votre application basée sur astro étape 10 – explorer le panneau d'administration back4app l' application d'administration back4app est un panneau de gestion convivial pour l'édition des données il est particulièrement utile pour les membres non techniques de l'équipe qui ont besoin d'un accès direct à votre base de données activer l'application admin sous plus > application admin créer un utilisateur admin pour un accès sécurisé utiliser ce panneau pour effectuer rapidement des opérations crud, vérifier les journaux ou configurer des paramètres plus avancés conclusion vous avez réussi à créer un backend sécurisé et efficace pour un projet astro en utilisant back4app tout au long de ce tutoriel, vous défini et configuré un schéma de base de données utilisé les api rest et graphql pour lire et écrire des données sécurisé les données avec des acl, des clp et une authentification des utilisateurs étendu la logique via le cloud code et des tâches planifiées géré le stockage de fichiers pour les images ou les documents intégré des webhooks pour des notifications externes exploré le panneau d'administration pour une gestion simplifiée des données cette approche souligne comment construire un backend pour astro qui est fiable, évolutif et facile à maintenir en tirant parti des variables d'environnement, vous gardez vos identifiants en sécurité tout en garantissant que votre code reste flexible pour une croissance future prochaines étapes déployez votre projet astro avec des plateformes d'hébergement qui prennent en charge le rendu côté serveur ou les environnements basés sur node ajoutez des fonctionnalités avancées , comme le contrôle d'accès basé sur les rôles ou des intégrations de paiement spécialisées, en utilisant cloud code ou des api externes optimisez les performances en mettant en œuvre des stratégies de mise en cache et en ajustant les paramètres de contenu de votre viewport pour une meilleure expérience utilisateur consultez la documentation de back4app pour en savoir plus sur les journaux, l'analyse et d'autres mesures de sécurité avancées continuez à explorer les fonctionnalités en temps réel avec les requêtes en direct et construisez des applications véritablement dynamiques et collaboratives