Accéder au contenu principal Passer au contenu complémentaire

Propriétés du Client HTTP

Propriétés à configurer pour pouvoir envoyer une requête HTTP au serveur et obtenir les informations de réponse correspondantes depuis le serveur.

Connexion au Client HTTP

Sélectionnez HTTP Client dans la liste et configurez la connexion.

Configuration

Sélectionnez votre moteur dans la liste et configurez les paramètres principaux et avancés.

Paramètres principaux
Propriété Configuration
Base URL

Saisissez l'URL de base à laquelle accéder.

Par exemple : https://www.example.com/v1.0/

La seconde partie de l'URL doit être définie dans le paramètre Path (Chemin) de la configuration du jeu de données du Client HTTP.

Vous pouvez également définir une valeur factice à l'aide de la syntaxe Data Shaping Selector Language pour remplir certaines parties de manière dynamique avec la valeur extraite provenant de l'enregistrement entrant. Exemple :

Base URL (URL de base) = "https://{.input.job_url}" et Path (Chemin) = "{.input.job_url_path}"

Authentification Sélectionnez l'une des méthodes d'authentification suivantes selon les prérequis de sécurité du serveur :
  • No authentication (Pas d'authentification) : aucune authentification n'est attendue pour accéder au serveur.
  • Basic : un identifiant et un mot de passe sont attendus (consultez la documentation correspondante, en anglais).
  • Basic (Basique) : un identifiant et un mot de passe sont attendus (consultez la documentation correspondante, en anglais).
  • Bearer Token (Jeton Bearer) : un jeton d'accès brut est attendu. Il sera passé dans l'en-tête de la requête HTTP en tant qu'autorisation  : Bearer <votre jeton>.
  • NTLM : un identifiant (pouvant contenir un nom de domaine) et un mot de passe sont attendus (consultez la documentation correspondante, en anglais).
  • API Key (Clé d'API) : utilise une manière flexible de passer un jeton de clé d'API au serveur, avec la possibilité de sélectionner où le passer, avec quel nom et un préfixe :
    • Destination : sélectionnez où sera configuré le jeton : dans un en-tête HTTP avec le nom donné ou dans un paramètre de requête HTTP avec le nom donné (non recommandé car le jeton peut être visible dans les logs).
    • Name (Nom) : saisissez le nom de l'en-tête ou le paramètre de requête.
    • Prefix (Préfixe) (facultatif) : saisissez le préfixe à ajouter devant le jeton (uniquement si la Destination est Request header (En-tête de la requête)).
    • Token (Jeton) : saisissez le jeton d'authentification.
  • OAuth 2.0 gère automatiquement la récupération et le renouvellement du jeton d'accès par rapport au serveur OAuth puis le passe à l'endpoint cible en tant que jeton Bearer :
    • Flow (Flux) : le flux OAuth que vous souhaitez exécuter. Atuellement, seul le flux Client Credentials est supporté.
    • Authentication mode (Mode d'authentification) : pour toutes les méthodes d'authentification supportées, les paramètres de flux et de périmètre (scope) sont configurés dans le corps, à l'aide du format 'application/x-www-form-urlencoded' avec les clés 'grant_type=xxx&scope=xxxx'.
    • Token endpoint (Endpoint du jeton) :
    • Saisissez le jeton d'authentification en respectant le format 'oauth2/mydomain.com/token'.
    • Client ID (ID Client) et Client secret (Secret du client) : saisissez l'ID client et le secret du client.
    • Additional parameters (Paramètres supplémentaires) : saisissez les attributs supplémentaires à ajouter, par exemple l'attribut scope.
Advanced settings
Propriété Configuration
Connection timeout (ms)

Saisissez l'URL de base à laquelle accéder.

Par exemple : https://www.example.com/v1.0/

La seconde partie de l'URL doit être définie dans le paramètre Path (Chemin) de la configuration du jeu de données du Client HTTP.

Read timeout (ms) Configure le temps d'attente maximal en millisecondes pour recevoir le payload de la réponse. Une exception est retournée si le délai avant expiration est expiré avant que les données soient disponibles à la lecture.
Bypass server certificate validation (Ignorer la validation du certificat du serveur) Lorsque cette option est activée, le certificat du serveur n'est pas validé par le client. Elle est conçue à des fins de tests uniquement et doit être désactivée dans les environnements de production.
Use a proxy (Utiliser un proxy)

Activez cette option pour que la connexion entre le client et le serveur soit établie via un proxy HTTP ou SOCKS :

  • Proxy type (Type de proxy) : sélectionnez le type de proxy à utiliser. Le proxy HTTP supporte l'authentification basique.
  • Proxy host (Hôte du proxy) et Proxy port (Port du proxy) : saisissez l'adresse et le port du proxy.
  • Proxy login (identifiant du proxy) et Proxy password (Mot de passe du proxy) (HTTP uniquement) : saisissez les identifiants nécessaires à l'authentification au proxy.
Retry with exponential backoff (Réessayer avec un backoff exponentiel) Sélectionnez cette option pour effectuer une nouvelle tentative automatique des appels HTTP en échec. Lorsque cette option est sélectionnée, une nouvelle tentative d'appel HTTP est effectuée si le délai avant expiration est atteint, ou si le code de statut HTTP est supérieur ou égal à 400. Cependant, aucune tentative n'est effectuée pour les erreurs 401/403/511, qui sont des erreurs relatives à l'authentification.
  • Initial backoff (ms) (Backoff initial (ms)) : saisissez la durée d'attente, en millisecondes, avant la première nouvelle tentative d'appel HTTP.
  • Backoff factor (Facteur de backoff) : lorsqu'une tentative échoue, la durée d'attente est multipliée par ce facteur, pour augmenter le délai entre chaque appel. Si le facteur est 1, tous les délais seront identiques.
  • Maximum number of retries (Nombre maximal de tentatives) : saisissez le nombre maximal de tentatives pour une requête HTTP seule. L'appel initial ne doit pas être inclus dans ce nombre.

Exemple pour la configuration suivante :

Intial backoff (Backoff initial) : 300 ms, Backoff factor (Facteur de backoff) : 2 et Maximum number of retries (Nombre maximal de tentatives) : 4

Le connecteur HTTP Client (Client HTTP) effectue une première opération GET sur le serveur (premier appel). Une erreur d'expiration de la connexion est retournée. Le mécanisme de tentatives est activé et le connecteur attend 300 millisecondes. Une nouvelle tentative est effectuée (première tentative). Une réponse HTTP 503 est retournée. La durée d'attente est multipliée par 2, le connecteur attend donc 600 millisecondes. Une troisième tentative est effectuée (deuxième tentative). Une erreur 500 interne au serveur est retournée. La durée d'attente est multipliée par 2, le connecteur attend donc 1 200 millisecondes. Une quatrième tentative est effectuée (troisième tentative). Elle réussit. Aucune tentative supplémentaire n'est efffectuée et la réponse est retournée.

Après avoir configuré la connexion, donnez-lui un nom à afficher (obligatoire) et une description (facultative).

Jeu de données du Client HTTP

Configuration du jeu de données
Propriété Configuration
Dataset name Saisissez un nom pour le jeu de données. Ce nom sera utilisé comme identifiant unique du jeu de données dans toutes les applications Talend Cloud.
Connexion Sélectionnez votre connexion dans la liste. Si vous créez un jeu de données basé sur une connexion existante, ce champ est en lecture seule.
Type Sélectionnez le type de jeu de données à créer :
  • Batch si vous souhaitez exécuter une seule fois la requête HTTP. Le pipeline utilisant ce jeu de données sera un pipeline de type batch.
  • Streaming si vous souhaitez exécuter la requête HTTP toutes les N millisecondes dans un pipeline de type streaming. Le pipeline utilisant ce jeu de données sera un pipeline de type streaming et vous pourrez définir l'intervalle d'interrogation en millisecondes dans le champ Min poll interval (ms) (Intervalle minimal d'interrogation (ms)) du jeu de données source.
Paramètres principaux
Propriété Configuration
HTTP method Sélectionnez dans la liste la méthode HTTP pour définir l'action à effectuer.
Path (Chemin d'accès)

Saisissez la seconde partie de l'URL précédemment définie dans la configuration de la connexion sur laquelle le jeu de données est créé. La concaténation des deux désigne la ressource que vous ciblez avec ce jeu de données.

Les valeurs de l'URL de base (Base URL) (connexion) et du chemin (Path) (jeu de données) sont concaténées et un caractère / est ajouté quand cela est nécessaire.

Vous pouvez également définir une valeur factice à l'aide de la syntaxe Data Shaping Selector Language pour remplir certaines parties de manière dynamique avec la valeur extraite provenant de l'enregistrement entrant. Exemple :

Base URL (URL de base) = "https://{.input.job_url}" et Path (Chemin) = "{.input.job_url_path}"

Path parameters (Paramètres de chemin)

Activez cette option pour spécifier les paramètres supplémentaires nécessaires pour compléter l'URL de base ou le chemin sous la forme de paires nom-valeur.

Si le champ Base URL (URL de base) ou Path (Chemin) contient une valeur factice, vous pouvez définir les paramètres de rempalcement de cette valeur :
  • Name (Nom) : saisissez le nom de la valeur factice à remplacer.
  • Value (Valeur) : saisissez la valeur par laquelle remplacer la valeur factice. Cela peut être une valeur statique comme contactEntity, une valeur extraite de l'enregistrement entrant, comme {.input.entity.id}, ou un mélange des deux, comme version{.input.api.version}.

Par exemple, avec l'URL de base https://www.example.com et le chemin /{api_version}, vous pouvez configurer le chemin en ajoutant un paramètre à la table, en configurant la colonne Name à api_version et la colonne Value à v1.0.

Paramètres de requête Activez cette option pour spécifier les paramètres qui seront configurés dans l'URL de la requête après le caractère ?, sous forme de paires nom-valeur. Ces valeurs sont encodées automatiquement.
  • Name (Nom) : saisissez le nom du paramètre.
  • Value (Valeur) : saisissez la valeur du paramètre. Cela peut être une valeur statique comme UUID-1234567, une valeur extraite de l'enregistrement entrant, comme {.input.user.id}, ou un mélange des deux, comme UUID-{.input.user.id}.

Exemple : Nom du paramètre de requête = entityId et valeur du paramètre de requête = UUID-1234567

Request headers (En-têtes des requêtes) Activez cette option pour définir des en-têtes de requêtes HTTP en tant que paires nom-valeur. Vous pouvez définir chaque en-tête pour qu'il fasse partie de la requête HTTP principale (Main), de la requête d'authentification (Authentication, disponible uniquement avec l'authentification OAuth 2.0), ou des deux requêtes (Both).
  • Name (Nom) : saisissez le nom de l'en-tête.
  • Value : saisissez la valeur de l'en-tête. Elle peut être une valeur statique comme text/html; charset=utf-8, une valeur extraite de l'enregistrement entrant, comme {.input.meta.content}, ou un mélange des deux, comme text/{.input.document.format}; charset={.input.document.charset}.
  • Query (Requête) : sélectionnez la requête sur laquelle appliquer cette configuration d'en-tête.

Exemple : Nom de l'en-tête = Content-Type et valeur de l'en-tête = text/html;charset=utf-8

Corps de la requête Activez cette option si vous souhaitez inclure un corps de message dans la requête :
  • Text : saisissez le corps du message en plein texte dans la zone de texte située sous la liste déroulante. Vous pouvez définir une valeur factice à l'aide de la syntaxe Data Shaping Selector Language pour remplir certaines parties de manière dynamique avec la valeur extraite provenant de l'enregistrement entrant. Exemple :
    id={.input.user.id}
    name={.input.user.name}  
  • JSON : saisissez le corps du message au format JSON dans la zone de texte située sous la liste déroulante. Vous pouvez définir une valeur factice à l'aide de la syntaxe Data Shaping Selector Language pour remplir certaines parties de manière dynamique avec la valeur extraite provenant de l'enregistrement entrant. Exemple :
    {
     "id": "{.input.user.id}",
     "name": "{.input.user.name}",
     "age": "{.input.user.age}",
     }
  • XML : saisissez le corps du message au format XML dans la zone de texte située sous la liste déroulante. Vous pouvez définir une valeur factice à l'aide de la syntaxe Data Shaping Selector Language pour remplir certaines parties de manière dynamique avec la valeur extraite provenant de l'enregistrement entrant. Exemple :
    <user>
     <id>{.input.user.id}</id>
     <name>{.input.user.name}</name>
     <age>{.input.user.age}</age>
    </user>
  • Form data et x_www_urlencoded : créez le corps à l'aide d'un formulaire multipart avec des paires nom-valeur d'attributs ou à l'aide d'un formulaire URL-encoded avec des paires nom-valeur d'attributs. Saisissez le nom et la valeur des attributs dans les lignes de la table, sous la liste déroulante. Vous pouvez définir une valeur factice à l'aide de la syntaxe Data Shaping Selector Language pour remplir certaines parties de manière dynamique avec la valeur extraite provenant de l'enregistrement entrant.

  • Binary : sélectionnez cette option si vous souhaitez charger par morceaux des fichiers de données dont la taille dépasse les 500 Mo. Une fois cette option sélectionnée, le champ File path s'affiche et vous permet de spécifier un dossier de chargement local.
Response body format Sélectionnez le format du corps de la réponse dans la liste déroulante Response body format. Sélectionner le bon format permet au connecteur de parser et d'appliquer les opérations à la réponse. Actuellement, les formats texte et JSON sont supportés.
  • Text : sélectionnez ce format pour retourner un message plein texte. Dans ce cas, le payload de la réponse n'est pas parsé et il ne sera pas possible d'en extraire une sous-partie.
  • JSON : sélectionnez ce format si la réponse reçue est au format JSON. Dans ce cas, le payload est traduit en différents enregistrements JSON correctement parsés.
Extract a sub-part of the response (Extraire une sous-partie de la réponse) Saisissez le chemin d'un nœud pour sélectionner un sous-élément de la réponse. Si l'élément est un tableau, une boucle sera effectuée sur chaque élément du tableau. Pour plus d'informations concernant la syntaxe de saisie du nom du nœud, consultez Utilisation de Data Shaping Selector Language.

Ce champ est facultatif et doit rester vide afin de récupérer la réponse JSON complète.

Pour un exemple d'utilisation, consultez Informations supplémentaires concernant l'extraction de données avec le Client HTTP.

Returned content (Contenu retourné) Sélectionnez l'une des deux options suivantes en fonction des données retournées par le serveur.
  • Body : si l'option Text est sélectionnée dans la liste déroulante Response body format, un enregistrement avec un attribut de chaîne de caractères nommé body est généré et tout le payload y est copié. Si l'option JSON est sélectionnée dans la liste déroulante Response body format, un enregistrement représentant la structure hiérarchique du document parsé est généré. Limitation : Si la partie corps du flux principal dépasse les 200 Mo, l'enregistrement sera tronqué et un avertissement sera retourné.

  • Status, headers, and body : un enregistrement est généré avec un attribut (de type INT) contenant le code de statut HTTP, un attribut headers qui est un enregistrement contenant tous les en-têtes de réponse en tant qu'attributs imbriqués et un attribut body qui est soit une chaîne de caractères simple contenant le payload complet en tant que texte (si l'option Text est sélectionnée dans la liste déroulante Response body format), soit un objet hiérarchique représentant le document parsé (si l'option JSON est sélectionnée dans la liste déroulante Response body format). Limitation : Si la partie corps du flux principal dépasse les 200 Mo, l'enregistrement sera tronqué et un avertissement sera retourné.
  • Download file only : sélectionnez cette option afin de limiter le contenu retourné dans le flux principal et télécharger uniquement le corps de réponse HTTP en tant que fichier ou en cache, sans construire d'enregistrement dans le flux principal, économisant ainsi les ressources. Cette option est conçue pour être utilisée dans le composant on-premises dans le Studio Talend. Il n'est pas recommandé de l'utiliser dans Talend Cloud.
Output key/value pair (Paire de sortie clé/valeur ) Sélectionnez cette option pour retourner les paires clé-valeur au lieu du corps brut de la réponse HTTP. Pour saisir une valeur pour un nœud, ajoutez une ligne à la table en cliquant sur le bouton [+], saisissez le nom du nœud dans le champ Name et saisissez la valeur dans le champ Value.

La valeur peut provenir de l'entrée du composant ou de la réponse HTTP. Saisissez "{.input.<dssl_path>}" dans le champ Value si la valeur provient de l'entrée du composant ou saisissez "{.response.<dssl_path>}" si elle provient de la réponse HTTP.

Dans l'exmple pour l'option Extract a sub-part of the JSON, vous pouvez récupérer le nom et la valeur des villes des géologues en saisissant .content dans le champ Extract a sub-part of the JSON et en ajoutant deux paires clé/valeur dans la table.
  • "Name" :"{response.name}"
  • "City" : "{response.address.city}"

Lorsque vous récupérez des données d'un serveur HTTP, vous pouvez spécifier le formatet le contenu des données récupérées à l'aide du schéma, du bouton Guess schema, de l'option Response body format, de l'option Returned content, de l'option Extract a sub-part of the response et de l'option Output key/value pairs. Pour plus d'informations, consultez tHTTPClient : configuration et sortie.

Forward input values Sélectionnez cette option pour passer les valeurs reçues du composant d'entrée au composant suivant.

Cette option est disponible lorsque l'option Output key/value pairs est sélectionnée.

Advanced settings
Propriété Configuration
Accept redirections Activez cette option pour appliquer les règles de redirection HTTP (en anglais) sur vos ressources.
  • Maximum number of redirects (Nombre maximal de redirections) : configurez le nombre maximal de redirections que doit suivre le connecteur. Si le nombre de redirections dépasse la valeur configurée, la dernière est retournée en tant que résultat de la requête.
  • Redirect only on same host (Rediriger uniquement sur le même hôte) : activez cette option si vous souhaitez que les redirections soient effectuées uniquement lors de l'utilisation du même hôte.
Pagination Sélectionnez cette option pour activer la stratégie de pagination. Pour plus d'informations concernant la stratégie de pagination, consultez la section Pagination de la page JIRA Server platform REST API reference (en anglais).

Notez que le pagination est uniquement conforme aux payloads JSON et que les éléments souhaités doivent se trouver dans un tableau dans le payload JSON.

Vous devez configurer les options suivantes pour que la pagination fonctionne correctement.

  • Pagination strategy : sélectionnez la stratégie de pagination à utiliser :
    • Offset/limit : cette stratégie récupère les éléments commençant à une position spécifique dans les pages d'une taille spécifique. Le paramètre offset spécifie l'élément de début en termes d'offset du premier élément. Le paramètre limit spécifie la taille maximale d'une page en termes de nombre d'éléments. Lorsque cette stratégie est appliquée, la pagination s'arrête lorsque le dernier appel retourne 0 élément.
    • Marker : cette stratégie utilise un "marqueur" (généralement l'ID du dernier élément récupéré) pour obtenir l'ensemble suivant de résultats. Le marqueur indique où commence la page suivante de données, permettant ainsi à l'API de retourner les résultats se trouvant après le marqueur. Lorsque cette stratégie est appliquée, la pagination s'arrête lorsque la réponse contient l'élément de marqueur.
    • Next link : cette stratégie fournit un "lien suivant (next link)" (ou URL) dans la réponse, que le client peut utiliser pour récupérer l'ensemble suivant de résultats. Le "lien suivant" inclut un offset ou numéro de page que le client peut utiliser pour récupérer la page suivante. Lorsque cette stratégie est appliquée, la pagination s'arrête lorsque la réponse contient l'élément de lien suivant.
  • Location : spécifiez la manière dont configurer les paramètre d'offset et de limite. Elle peut être Query parameters ou In headers.
  • Name of the offset : configurez le nom du paramètre à utiliser comme offset.
  • Value of the offset : configurez la valeur de l'offset. Pour commencer du premier élément, configurez la valeur à 0. Vous pouvez obtenir l'offset d'une requête provenant des enregistrements entrants à l'aide de l'expression DSSL '{.input.last_page_info.offset}'.
  • Name of the limit : configurez le nom du paramètre définissant le nombre maximal d'éléments autorisés dans une page.
  • Value of the limit : configurez la limite, c'est-à-dire le nombre maximal d'éléments pouvant être retournés dans une page. La pagination s'arrête lorsqu'une page est retournée avec 0 élément.
  • Path to elements : configurez le chemin d'accès au tableau JSON contenant les éléments souhaités. Il doit correspondre à un tableau JSON. Une fois la stratégie offset/limit appliquée, l'élément spécifié par ce paramètre devient la racine, quelle que soit la configuration de l'option Extract a sub-part of the response. Par exemple, avec l'option JIRA sélectionnée dans la liste déroulante Preset, configurer Path to elements à .issue permet de récupérer les tickets, même si l'option Extract a sub-part of the response est configurée à .key (et si key est un attribut des éléments présents dans les tickets).
  • Preset : sélectionnez la configuration prédéfinie pour le service spécifique supportant la stratégie de pagination en sélectionnant le service correspondant. Pour sélectionner un service, cliquez sur le bouton [...] près de ce champ et sélectionnez le service. Vous pouvez sélectionner l'un des services suivants :
  • Load selected preset : cliquez sur ce bouton pour charger la configuration prédéfinie sélectionnée dans le champ Preset.
Normalize the JSON HTTP response (Normaliser la réponse HTTP JSON) Sélectionnez cette option pour normaliser les incohérences dans les payloads JSON, afin que le composant puisse parser correctement ces documents :
  • Normalize attributes (Normaliser les attributs) : vous permet de convertir une valeur dans le type de données attendu.
  • Normalize arrays (Normaliser les tableaux) : vous permet de filtrer certains éléments d'un tableau JSON.

    Exemple :

    Si vous configurez le composant pour récupérer ce document JSON, ces incohérences JSON seront retournées dans la console d'exécution des Jobs :
    Some JSON inconsistencies has been identified:
                                        .users.*.addresses is not consistently present in all objects.
                                        .users.*.active is not consistently present in all objects.
                                        .users.*.email is not consistently present in all objects.
                                        .users.*.addresses is an array that contains items of several types: STRING, OBJECT.
                                        .users.*.addresses.*.country is not consistently present in all objects.
                                        .users.*.addresses.*.street is not consistently present in all objects.
                                        .users.*.addresses.*.zipcode is found with varying types: STRING, INT.
                                        Please, have a look to advanced settings JSON normalization to fix it.

    Pour éviter cela, vous pouvez par exemple utiliser l'option Normalize attributes (Normaliser les attributs) pour convertir l'attribut ayant le chemin .users.*.addresses en type ARRAY et l'attribut ayant le chemin users.*.addresses.*.zipcode en type INT, même si certaines valeurs retournées ont un type String. Vous pouvez également ajouter un attribut manquant, par exemple .users.*.active (vous pouvez ici le convertir en BOOLEAN car il retourne 'true' ou 'false').

    Vous pouvez également utiliser l'option Normalize arrays (Normaliser les tableaux) pour conserver uniquement les éléments OBJECT ayant le chemin .users.*.addresses, même si certaines adresses contiennent des types String.

Cette option est disponible lorsque l'option JSON est sélectionnée dans la liste Response body format de la vue Basic settings du composant.

Configuration de la source/cible du Client HTTP

Lorsqu'un Client HTTP est utilisé en tant que jeu de données source ou de destination dans votre pipeline, une option supplémentaire peut être activée lors de la récupération/de l'envoi de données depuis/vers votre serveur Web :
  • Die on error (status code different from 2xx) (Arrêter en cas d'erreur (si le code de statut n'est pas 2xx))

    Activez cette option si vous souhaitez que les codes de statut de réponses HTTP non réussies (différents de 2xx) retournent une erreur lors de l'exécution. Cette option est désactivée par défaut.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.