Passer au contenu principal
Vous consultez la documentation pour développeurs
Cette documentation est destinée aux développeurs travaillant avec la plateforme développeur Base44. Pour des informations sur les fonctions backend dans l’éditeur d’applications, consultezUtilisation des intégrations.
Les fonctions backend vous permettent d’exécuter du code backend personnalisé dans un environnement sécurisé et isolé. Utilisez les fonctions pour implémenter une logique métier qui ne devrait pas s’exécuter dans le navigateur, se connecter à des API tierces avec des identifiants protégés, traiter des webhooks ou étendre votre application avec des endpoints personnalisés. Les fonctions backend s’exécutent sur Deno, un runtime TypeScript moderne. Appelez les fonctions depuis votre frontend en utilisant le SDK, qui gère l’authentification automatiquement. Chaque fonction obtient également son propre endpoint HTTP pour les webhooks et les intégrations externes. Les fonctions peuvent également s’exécuter automatiquement en utilisant des automatisations. Planifiez l’exécution des fonctions à des heures spécifiques ou déclenchez-les en réponse à des événements de base de données comme la création, la mise à jour ou la suppression d’enregistrements.
Chaque projet prend en charge un maximum de 50 fonctions backend.

Créer des fonctions

Créez des fonctions backend en tant que fichiers TypeScript dans le répertoire des fonctions de votre projet. Par défaut, le répertoire des fonctions est base44/functions/, mais vous pouvez personnaliser le chemin dans votre configuration de projet. Chaque fonction vit dans son propre sous-répertoire avec un fichier entry.ts ou entry.js :
functions
<function-name>
entry.ts
La CLI utilise le chemin du répertoire relatif à la racine des fonctions comme nom de fonction. Par exemple, functions/sendWelcomeEmail/entry.ts crée une fonction nommée sendWelcomeEmail. Vous pouvez également imbriquer des fonctions dans des sous-répertoires pour l’organisation. functions/email/send/entry.ts crée une fonction nommée email/send.

Ajouter un fichier de configuration

Pour des besoins avancés comme des noms de fonction personnalisés ou des automatisations, ajoutez un fichier function.jsonc :
functions
<function-name>
entry.ts
function.jsonc
Le fichier de configuration définit le nom de la fonction et le point d’entrée :
{
  "name": "sendWelcomeEmail",
  "entry": "entry.ts",
}
PropriétéDescription
nameFacultatif. Identifiant unique pour la fonction. Utilisé lors de l’invocation via SDK ou HTTP. La valeur par défaut est le chemin du répertoire relatif à la racine des fonctions.
entryLe fichier contenant le code de la fonction.
automationsFacultatif. Tableau de configurations d’automatisation pour exécuter la fonction selon une planification ou en réponse à des événements de base de données. Consultez Automatisations pour plus de détails.

entry.ts

Le fichier de code contient la logique de votre fonction. Les fonctions doivent utiliser le wrapper Deno.serve() et retourner des objets Response :
import { createClientFromRequest } from "npm:@base44/sdk";

Deno.serve(async (req) => {
  try {
    const base44 = createClientFromRequest(req);
    const user = await base44.auth.me();

    if (!user) {
      return Response.json({ error: "Unauthorized" }, { status: 401 });
    }

    const { name } = await req.json();

    return Response.json({
      message: `Hello, ${name || user.full_name}!`,
    });
  } catch (error) {
    return Response.json({ error: error.message }, { status: 500 });
  }
});

Tester localement

Exécutez vos fonctions localement avec base44 dev pour tester les changements sans déployer. Consultez Développement local pour plus de détails.

Déployer les fonctions

Déployez les fonctions avec functions deploy ou deploy pour pousser toutes les ressources du projet en une fois. Vous pouvez déployer des fonctions spécifiques par nom avec functions deploy <names...>, ou utiliser --force pour supprimer les fonctions distantes non trouvées localement. Pour télécharger les fonctions déployées vers votre projet local, utilisez functions pull. Pour voir ce qui est actuellement déployé, utilisez functions list.

Appeler les fonctions

Appelez les fonctions backend depuis votre frontend en utilisant le SDK, ou via HTTP pour les webhooks et les intégrations externes.

Via le SDK

Utilisez base44.functions.invoke() pour appeler les fonctions depuis votre frontend. Le SDK gère l’authentification automatiquement, en passant les identifiants de l’utilisateur actuel à votre fonction.
import { base44 } from "@/api/base44Client";

const response = await base44.functions.invoke("sendWelcomeEmail", {
  name: "Alice",
});

Via HTTP

Chaque fonction déployée obtient un endpoint HTTP à :
https://<your-app-domain>/functions/<function-name>
Ceci est utile pour :
  • Webhooks : recevoir des rappels de services externes comme Stripe ou GitHub.
  • Intégrations externes : permettre à d’autres systèmes d’interagir avec votre application.
  • Tests : appeler les fonctions directement avec des outils comme cURL ou Postman.
Exemple d’utilisation
curl -X POST https://your-app.base44.app/functions/sendWelcomeEmail \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice"}'
Lors de l’appel de fonctions via HTTP direct (comme cURL ou les webhooks), il n’y a pas de contexte utilisateur authentifié. Utilisez asServiceRole pour toutes les opérations dans ces cas.

Utiliser le SDK dans les fonctions

À l’intérieur de vos fonctions backend, vous pouvez accéder aux données, à l’authentification et aux intégrations de votre application via le SDK Base44. Utilisez createClientFromRequest() pour créer un client à partir de la requête entrante. Le contexte d’authentification dépend de la manière dont la fonction a été appelée :
  • Lorsqu’appelée via le SDK depuis votre frontend : l’authentification de l’utilisateur est passée automatiquement. Vous pouvez accéder à l’utilisateur actuel avec base44.auth.me() et effectuer des opérations avec ses permissions. Pour des opérations de niveau admin, utilisez asServiceRole.
  • Lorsqu’appelée via HTTP direct (cURL, webhooks, services externes) : il n’y a pas d’utilisateur authentifié, utilisez donc asServiceRole pour toutes les opérations.

Se connecter aux API tierces

Les fonctions backend sont l’une des plusieurs façons de se connecter aux API tierces. Elles sont idéales lorsque vous avez besoin d’un contrôle total sur les requêtes ou que vous souhaitez stocker des clés API en toute sécurité en tant que variables d’environnement. Utilisez secrets set pour configurer les variables d’environnement depuis la CLI.

Voir les logs

Pendant le développement local, la sortie des fonctions est affichée directement dans votre terminal sans avoir besoin de la commande logs. Pour les fonctions déployées, voyez les logs avec la commande logs. Les logs incluent la sortie console, les erreurs et les informations de temporisation. Vous pouvez filtrer par nom de fonction ou plage de temps. Si vous utilisez un agent de codage IA, le skill base44-troubleshooter peut récupérer et analyser automatiquement ces logs.

Types TypeScript

Générez des types TypeScript à partir de vos configurations de fonction pour obtenir la sécurité des types et l’autocomplétion des noms de fonctions dans votre code SDK. Apprenez-en plus sur les types dynamiques.

Voir aussi

Cette page a été traduite à l’aide de l’IA. Pour les informations les plus précises et à jour, consultez la version anglaise.