Skip to main content

REST API

Appelle une API REST et transforme la réponse en flux de données. La brick fonctionne en deux modes, auto-détectés selon le lien d'entrée :

  • Autonome (aucune entrée connectée) : la brick est une source ; elle appelle l'API, pagine si nécessaire et émet les résultats ;
  • Enrichissement par ligne (une entrée connectée) : la brick appelle l'API une fois par ligne du flux d'entrée (paramètres ou corps alimentés par les colonnes) et fusionne les réponses au flux.

Connexion et authentification​

La brick utilise de préférence une connexion REST API du projet (connection_id), voir Créer une connexion. À défaut, une base_url et une authentification peuvent être saisies sur la brick :

ParamètreDescription
auth_typenone (défaut), clé API, token Bearer ou Basic.
api_key, api_key_location, api_key_nameClé API, placée en header (défaut X-API-Key) ou en query string.
bearer_tokenToken Bearer.
basic_username, basic_passwordIdentifiants Basic.
timeoutTimeout par requête (30 s par défaut).
verify_sslVérification du certificat TLS (activée par défaut).

Requête​

ParamètreDéfautDescription
endpoint/Chemin de l'endpoint (ex. /users, /data/items).
http_methodGETGET ou POST.
query_params—Paramètres de query string (clé / valeur).
request_body—Corps JSON (pour POST).
request_headers—Headers HTTP additionnels.

Lecture de la réponse​

ParamètreDéfautDescription
response_typeautojson_object (avec data_path), json_array, csv ou auto-détection.
data_path—Expression JSONPath vers le tableau de données (ex. $.data, $.results).
response_handlingnonenone : toutes les colonnes ; mapped : extraction de champs via output_fields_mapping.
output_fields_mapping—Liste champ de réponse → colonne de sortie.
flatten_nestedfalseAplatit les objets imbriqués en colonnes (user.name → user_name, séparateur flatten_separator).
explode_arraysfalseUne ligne par élément de tableau (explode_columns pour cibler, vide = auto).
explode_paths—Chemins de tableaux à éclater au niveau du mapping (une ligne par élément, champs externes dupliqués).

Pagination (mode autonome)​

TypeDescriptionParamètres associés
nonePas de pagination (défaut).—
offsetOffset / limit.pagination_offset_param (offset), pagination_limit_param (limit), page_size.
pagePage / taille de page.pagination_page_param (page), pagination_page_size_param (page_size), page_size.
cursorCurseur renvoyé par la réponse.pagination_cursor_param (cursor), pagination_cursor_path ($.next_cursor).
linkHeader Link (RFC 5988).—

Garde-fous : max_pages et max_items (0 = illimité), page_size (100 par défaut).

Mode enrichissement par ligne​

Quand une entrée est connectée, ces paramètres pilotent l'appel par ligne :

ParamètreDéfautDescription
query_params_mapping—Mapping colonne source → paramètre de requête.
body_template—Template Jinja2 du corps : {{ row.nom_colonne }} injecte la valeur de la ligne.
response_columnresponseColonne recevant la réponse JSON brute quand response_handling vaut none.
keep_source_columnstrueConserve les colonnes d'entrée dans la sortie.
max_items_per_row0Limite d'éléments récupérés par ligne (0 = illimité).
parallel_requests5Nombre de requêtes parallèles (1 à 50).
rate_limit0Requêtes par seconde maximum (0 = sans limite).
error_handlingnullEn cas d'erreur : remplir avec NULL, ignorer la ligne ou arrêter le traitement.
error_column—Colonne où stocker le message d'erreur (vide = désactivé).
cache_enabledtrueCache des réponses pour éviter les appels en double.
cache_key_columns—Colonnes composant la clé de cache (vide = tous les paramètres d'URL).

Sorties par statut HTTP​

La brick expose des sorties dynamiques routées par code de statut :

  • status_outputs : liste de règles nom de sortie / motif, où le motif est un code exact (200), un wildcard (2xx, 4xx) ou default ;
  • status_default_enabled : conserve la sortie out par défaut pour les lignes ne correspondant à aucune règle ;
  • swagger_url : URL d'une spec OpenAPI pour auto-détecter les sorties à partir des codes de réponse documentés.
tip

Ce routage permet de traiter séparément les succès et les erreurs, par exemple envoyer les 4xx vers une Écriture fichier de rejets.