Sim

API

Le bloc API vous permet de connecter votre flux de travail Ă  des services externes via des points de terminaison API en utilisant des requĂȘtes HTTP. Il prend en charge diverses mĂ©thodes comme GET, POST, PUT, DELETE et PATCH, vous permettant d'interagir avec pratiquement n'importe quel point de terminaison API.

Bloc API

Aperçu

Le bloc API vous permet de :

Connecter Ă  des services externes : effectuer des requĂȘtes HTTP vers des API REST et des services web

Envoyer et recevoir des données : traiter les réponses et transformer les données provenant de sources externes

Intégrer des plateformes tierces : se connecter à des services comme Stripe, Slack ou des API personnalisées

Gérer l'authentification : prendre en charge diverses méthodes d'authentification, y compris les jetons Bearer et les clés API

Comment ça fonctionne

Le bloc API traite les requĂȘtes HTTP selon une approche structurĂ©e :

  1. Configuration de la requĂȘte - DĂ©finir l'URL, la mĂ©thode, les en-tĂȘtes et les paramĂštres du corps
  2. ExĂ©cution de la requĂȘte - Envoyer la requĂȘte HTTP au point de terminaison spĂ©cifiĂ©
  3. Traitement de la rĂ©ponse - GĂ©rer les donnĂ©es de rĂ©ponse, les codes d'Ă©tat et les en-tĂȘtes
  4. Gestion des erreurs - Gérer les délais d'attente, les nouvelles tentatives et les conditions d'erreur

Options de configuration

URL

L'URL du point de terminaison pour la requĂȘte API. Cela peut ĂȘtre :

  • Une URL statique saisie directement dans le bloc
  • Une URL dynamique connectĂ©e depuis la sortie d'un autre bloc
  • Une URL avec des paramĂštres de chemin

Méthode

SĂ©lectionnez la mĂ©thode HTTP pour votre requĂȘte :

  • GET : rĂ©cupĂ©rer des donnĂ©es du serveur
  • POST : envoyer des donnĂ©es au serveur pour crĂ©er une ressource
  • PUT : mettre Ă  jour une ressource existante sur le serveur
  • DELETE : supprimer une ressource du serveur
  • PATCH : mettre Ă  jour partiellement une ressource existante

ParamĂštres de requĂȘte

DĂ©finissez des paires clĂ©-valeur qui seront ajoutĂ©es Ă  l'URL comme paramĂštres de requĂȘte. Par exemple :

Key: apiKey
Value: your_api_key_here

Key: limit
Value: 10

Ceux-ci seraient ajoutés à l'URL sous la forme ?apiKey=your_api_key_here&limit=10.

En-tĂȘtes

Configurez les en-tĂȘtes HTTP pour votre requĂȘte. Les en-tĂȘtes courants incluent :

Key: Content-Type
Value: application/json

Key: Authorization
Value: Bearer your_token_here

Corps de la requĂȘte

Pour les mĂ©thodes qui prennent en charge un corps de requĂȘte (POST, PUT, PATCH), vous pouvez dĂ©finir les donnĂ©es Ă  envoyer. Le corps peut ĂȘtre :

  • Des donnĂ©es JSON saisies directement dans le bloc
  • Des donnĂ©es connectĂ©es Ă  partir de la sortie d'un autre bloc
  • GĂ©nĂ©rĂ©es dynamiquement pendant l'exĂ©cution du workflow

AccÚs aux résultats

Une fois qu'une requĂȘte API est terminĂ©e, vous pouvez accĂ©der Ă  ses sorties :

  • <api.data> : Les donnĂ©es du corps de la rĂ©ponse de l'API
  • <api.status> : Code de statut HTTP (200, 404, 500, etc.)
  • <api.headers> : En-tĂȘtes de rĂ©ponse du serveur
  • <api.error> : DĂ©tails de l'erreur si la requĂȘte a Ă©chouĂ©

Fonctionnalités avancées

Construction dynamique d'URL

Construisez des URL dynamiquement en utilisant des variables provenant de blocs précédents :

// In a Function block before the API
const userId = <start.userId>;
const apiUrl = `https://api.example.com/users/${userId}/profile`;

Nouvelles tentatives de requĂȘte

Le bloc API gĂšre automatiquement :

  • Les dĂ©lais d'attente rĂ©seau avec backoff exponentiel
  • Les rĂ©ponses de limite de dĂ©bit (codes d'Ă©tat 429)
  • Les erreurs serveur (codes d'Ă©tat 5xx) avec logique de nouvelle tentative
  • Les Ă©checs de connexion avec tentatives de reconnexion

Validation de la réponse

Validez les réponses API avant le traitement :

// In a Function block after the API
if (<api.status> === 200) {
  const data = <api.data>;
  // Process successful response
} else {
  // Handle error response
  console.error(`API Error: ${<api.status>}`);
}

Entrées et sorties

  • URL : Le point de terminaison auquel envoyer la requĂȘte

  • MĂ©thode : MĂ©thode HTTP (GET, POST, PUT, DELETE, PATCH)

  • ParamĂštres de requĂȘte : Paires clĂ©-valeur pour les paramĂštres d'URL

  • En-tĂȘtes : En-tĂȘtes HTTP pour l'authentification et le type de contenu

  • Corps : Charge utile de la requĂȘte pour les mĂ©thodes POST/PUT/PATCH

  • api.data : DonnĂ©es du corps de la rĂ©ponse de l'appel API

  • api.status : Code de statut HTTP renvoyĂ© par le serveur

  • api.headers : En-tĂȘtes de rĂ©ponse du serveur

  • api.error : DĂ©tails de l'erreur si la requĂȘte a Ă©chouĂ©

  • DonnĂ©es de rĂ©ponse : Contenu principal de la rĂ©ponse API

  • Informations de statut : Statut HTTP et dĂ©tails d'erreur

  • AccĂšs : Disponible dans les blocs aprĂšs l'appel API

Exemples de cas d'utilisation

Récupérer les données de profil utilisateur

Scénario : récupérer les informations utilisateur depuis un service externe

  1. Le bloc de fonction construit l'ID utilisateur à partir de l'entrée
  2. Le bloc API appelle le point de terminaison GET /users/{id}
  3. Le bloc de fonction traite et formate les données utilisateur
  4. Le bloc de réponse renvoie le profil formaté

Traitement des paiements

Scénario : traiter un paiement via l'API Stripe

  1. Le bloc de fonction valide les données de paiement
  2. Le bloc API crée une intention de paiement via Stripe
  3. Le bloc de condition gÚre le succÚs/échec du paiement
  4. Le bloc Supabase met à jour le statut de la commande dans la base de données

Bonnes pratiques

  • Utilisez des variables d'environnement pour les donnĂ©es sensibles : ne codez pas en dur les clĂ©s API ou les identifiants
  • GĂ©rez les erreurs avec Ă©lĂ©gance : connectez une logique de gestion des erreurs pour les requĂȘtes Ă©chouĂ©es
  • Validez les rĂ©ponses : vĂ©rifiez les codes d'Ă©tat et les formats de rĂ©ponse avant de traiter les donnĂ©es
  • Respectez les limites de taux : soyez attentif aux limites de taux des API et implĂ©mentez un throttling appropriĂ©
API