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

Propriétés du tHTTPClient Standard

Ces propriétés sont utilisées pour configurer le tHTTPClient s'exécutant dans le framework de Jobs Standard.

Le composant tHTTPClient Standard appartient à la famille Internet.

Le composant de ce framework est disponible dans tous les produits Talend nécessitant une souscription.

Note InformationsRemarque :
  • Ce composant est disponible uniquement si vous avez installé la mise à jour mensuelle 8.0.1-R2023-05 du Studio Talend ou une plus récente fournie par Talend. Pour plus d'informations, contactez votre administrateur ou administratrice.
  • À partir d'aujourd'hui, il est recommandé d'utiliser le composant tHTTPClient au lieu du composant tRESTClient.

Basic settings

Property type Peut-être Built-In ou Repository.
  • Built-In : propriétés utilisées ponctuellement.
  • Repository : sélectionnez le référentiel dans lequel sont stockées les propriétés. Les champs suivants sont automatiquement renseignés à l'aide des données récupérées.
Guess schema Cliquez sur ce bouton pour récupérer le schéma en fonction de vos paramètres. Ce bouton fonctionne lorsque l'option Status, headers and body est sélectionnée dans la liste déroulante Returned content ou que l'option Output key/value pairs est sélectionnée et que les paires clé/valeur sont configurées dans la table, sous l'option Output key/value pairs.

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 JSON et de l'option Output key/value pairs. Pour plus d'informations, consultez tHTTPClient : configuration et sortie.

Note InformationsRemarque : Une erreur survient si vous cliquez sur ce bouton alors que l'option Body est sélectionnée dans la liste déroulante Returned content et que l'option JSON est sélectionnée dans la liste déroulante Response body format. Cela se produit car le composant est conçu pour générer le schéma en fonction de la configuration d'entrée uniquement et pour empêcher l'exécution de la requête HTTP de consommer ou de mettre à jour des données.
Schema et Edit Schema Un schéma est une description de lignes, il définit le nombre de champ qui sont traités et passés au composant suivant. Le schéma est soit local (Built-in), soit distant dans le Repository.
  • Built-in : le schéma est créé et stocké localement pour ce composant seulement. Pour plus d'informations concernant les schémas des composants dans l'onglet Basic settings (Paramètres simples), consultez Onglet Basic settings.

  • Repository : le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisé dans des Jobs et projets. Pour plus d'informations concernant les schémas des composants dans l'onglet Basic settings (Paramètres simples), consultez Onglet Basic settings.

Le composant génère automatiquement le schéma en fonction des paramètres associés du composant. Cependant, vous devez définir le schéma manuellement si vous sélectionnez Body dans la liste déroulante Returned content et JSON dans la liste déroulante Response body format. Dans ce cas, vous devez ajouter une colonne pour chaque attribut de premier niveau et configurer le type de la colonne à String pour les attributs ayant des objets JSON imbriqués.

Voici un exemple. Avec l'option JSON sélectionnée dans la liste déroulante Response body format et l'option Body sélectionnée dans la liste déroulante Returned content, le schéma a besoin d'une colonne de type String pour contenir le contenu du nœud address de l'objet JSON suivant dans la réponse.
{
    "id": 1,
    "name": "Talend",
    "address": {
       "city": "San Mateo",
       "state": "California",
       "zipcode": "94402"
    }
}

Vous devez ajouter ces colonnes dans le schéma : id (de type Int), name (de type String) et address (de type String). Le composant peut ensuite extraire zipcode de la colonne address à l'aide du langage Data Shaping Selector Language (par exemple, input.address.zipcode).

Par défaut, les colonnes du schéma dépendant de la configuration des options Response body format et Returned content, comme suit.

  • Lorsque l'entrée Status, headers, and body est sélectionnée dans la liste déroulante Returned content, le schéma contient trois colonnes : body (de type String), headers (de type String) et status (de type Int).
  • Lorsque l'entrée Body est sélectionnée dans la liste déroulante Returned content et que l'option TEXT est sélectionnée dans la liste déroulante Response body format, le schéma contient une colonne : body (de type String).

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 JSON et de l'option Output key/value pairs. Pour plus d'informations, consultez tHTTPClient : configuration et sortie.

Créez le schéma en cliquant sur le bouton Edit Schema. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir uniquement le schéma.

  • Change to built-in property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs.

    Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre Repository Content.

Sync columns Cliquez sur ce bouton pour récupérer le schéma du composant précédent.
Base URL Saisissez l'URL de base du serveur HTTP auquel accéder, par exemple, https://www.example.com/v1.0/. Pour accéder à un service Web fourni par un serveur HTTP, vous devez fournir l'URL de base et le chemin. Vous pouvez fournir le chemin dans le champ Path.

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 :

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

Authentication type

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. Pour plus d'informations, consultez RFC 2617.
  • Digest : un identifiant et un mot de passe sont attendus. Pour plus d'informations, consultez RFC 2617.
  • Bearer token : un jeton d'accès brut est attendu. Il sera passé dans l'en-tête de la requête HTTP en tant que Authorization: Bearer <votre jeton>.
  • NTLM : un identifiant (pouvant contenir un nom de domaine) et un mot de passe sont attendus. Pour plus d'informations, consultez NT LAN Manager (NTLM) Authentication Protocol (en anglais).
  • API key : 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 : 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, au format 'application/x-www-form-urlencoded' avec les clés 'grant_type=xxx&scope=xxxx'.
    • Token endpoint : saisissez le jeton d'authentification au 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.
Note InformationsRemarque : Pour saisir un mot de passe, un jeton ou une clé secrète du client, cliquez sur le bouton [...] près du champ correspondant pour ouvrir la boîte de dialogue Enter a new password. Saisissez le mot de passe, le jeton ou la clé secrète dans le champ de texte et cliquez sur OK. Vous pouvez saisir une chaîne de caractères JSON en mode pure password ou une expression Java en mode Java. Vous pouvez passer d'un mode à l'autre en cliquant sur switch to Java mode ou switch to pure password mode au-dessus du champ de texte.
HTTP method Sélectionnez l'une de ces méthodes HTTP pour spécifier l'action à effectuer : GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE ou TRACE.

Pour sélectionner une méthode HTTP, cliquez sur le bouton [...] près de cette option et sélectionnez la méthode HTTP de votre choix dans la boîte de dialogue qui s'ouvre.

Path (Chemin d'accès) Saisissez la seconde partie de l'URL, afin de compléter l'URL de base renseignée dans le champ Base URL. L'URL de base et le chemin sont concaténés à l'aide du caractère / au besoin. Par exemple, pour chercher des données du serveur avec l'URL https://jira.talendforge.org/rest/api/2/, saisissez search dans ce champ.

Consultez la description du champ Base URL pour plus d'informations.

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 :

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

Path parameters (Paramètres de chemin) Cochez cette case 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 l'URL de base ou le chemin contient une valeur factice, vous pouvez ajouter des paramètres à la table et configurer le nom et la valeur du paramètre comme suit pour remplacer la valeur factice.

  • 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 (par exemple contactEntity), une valeur extraite de l'enregistrement entrant (par exemple {.input.entity.id}), ou un mélange des deux (par exemple 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 Sélectionnez 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. Les 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 (par exemple UUID-1234567), une valeur extraite de l'enregistrement entrant (par exemple {.input.user.id}), ou un mélange des deux (par exemple 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) Sélectionnez 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 (par exemple text/html;charset=utf-8), une valeur extraite de l'enregistrement entrant (par exemple {.input.meta.content}) ou un mélange des deux (par exemple, text/{.input.document.format};charset={.input.document.charset}).

    Notez que les en-têtes ayant une valeur AUTHENT peuvent être envoyés uniquement avec les requêtes d'authentification OAuth 2.0.

  • 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 Sélectionnez cette option si vous souhaitez inclure un corps de message dans la requête.
Body type Configurez le type de corps en sélectionnant l'option correspondante dans la liste déroulante.
  • 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.

La liste déroulante Body type est disponible lorsque vous sélectionnez l'option Request body.

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.

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 JSON et de l'option Output key/value pairs. Pour plus d'informations, consultez tHTTPClient : configuration et sortie.

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é.

  • 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).

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 JSON et de l'option Output key/value pairs. Pour plus d'informations, consultez tHTTPClient : configuration et sortie.

Note InformationsRemarque : Cette option affecte le schéma du flux de sortie de ce composant. Il est recommandé de mettre à jour le schéma en cliquant sur le bouton Guess schema après avoir sélectionné un élément dans cette liste déroulante.
Extract a sub-part of the JSON 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.

Exemple pour le document JSON suivant :
{
   "description": "List of some famous geologists",
   "content_length": 5,
   "author": "A. Smith",
   "content":[
      {
         "name":"Maurice Krafft",
         "age":35,
         "female":false,
         "address":{
            "city":"Mulhouse",
            "zipcode":68100
         }
      },
      {
         "name":"Katia Krafft",
         "age":49,
         "female":true,
         "address":{
            "city":"Soultz-Haut-Rhin",
            "zipcode":6860
         }
      },
      {
         "name":"Pline l'Ancien",
         "age":55,
         "female":false,
         "address":{
            "city":"Côme",
            "zipcode":22100
         }
      },
      {
         "name":"James Hutton",
         "age":70,
         "female":false,
         "address":{
            "city":"Édimbourg",
            "zipcode":0
         }
      },
      {
         "name":"Aline Peltier",
         "age":40,
         "female":false,
         "address":{
            "city":"Saint-Pierre",
            "zipcode":97410
         }
      }
   ]
}
Pour effectuer une boucle sur tous·tes les géologues et générer un enregistrement pour chaque géologue, saisissez .content dans le champ Extract a sub-part of the JSON. Vous pouvez également ajouter un filtre pour récupérer seulement un sous-ensemble des enregistrements. Par exemple, vous pouvez récupérer des informations concernant les géologues de plus de 40 ans en saisissant .content{.age>40} dans le champ Extract a sub-part of the JSON. Les informations suivantes seront retournées.
{"name":"Katia Krafft","age":49.0,"female":true, ...
{"name":"Pline l'Ancien","age":55.0,"female":false, ...
{"name":"James Hutton","age":70.0,"female":false, ...
Pour récupérer les villes des géologues de plus de 40 ans, saisissez .content{.age > 40}.address.city dans le champ Extract a sub-part of the JSON. Les informations suivantes seront retournées.
|=-----------------=|
|field              |
|=-----------------=|
|Soultz-Haut-Rhin   |
|Côme               |
|Édimbourg          |
'-------------------'
Si le payload du sélecteur ne contient qu'une valeur, il sera nommé field.

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 JSON et de l'option Output key/value pairs. Pour plus d'informations, consultez tHTTPClient : configuration et sortie.

Ce champ est disponible si vous sélectionnez JSON dans la liste déroulante Response body format.

Note InformationsRemarque : Ce champ affecte le schéma du flux de sortie de ce composant. Il est recommandé de mettre à jour le schéma en cliquant sur le bouton Guess schema après avoir configuré ce champ.
Output key/value pairs 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 JSON et de l'option Output key/value pairs. Pour plus d'informations, consultez tHTTPClient : configuration et sortie.

Note InformationsRemarque : Cette option affecte le schéma du flux de sortie de ce composant. Il est recommandé de mettre à jour le schéma en cliquant sur le bouton Guess schema après avoir configuré les paires clé/valeur dans la table sous cette option.
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.

Download attachments Sélectionnez cette option pour sauvegarder les pièces jointes de la réponse en tant que fichier dans un répertoire spécifié. Vous devez saisir le chemin du répertoire dans le champ Directory to save. Si le répertoire spécifié n'existe pas, le composant va essayer de le créer. Assurez-vous d'avoir l'autorisation de créer le répertoire spécifié.

Pour une réponse MIME multipart avec des pièces jointes, la première part n'étant pas une pièce jointe dans le corps sera traitée comme le corps de l'enregistrement de sortie. La partie de la pièce jointe est indiquée avec l'en-tête Content-Disposition=attachment;... et le nom de fichier de la pièce jointe est pris depuis sa valeur `name=...`. Si le champ name n'est pas fourni dans les métadonnées de l'en-tête, le fichier sera nommé en fonction du nom du service (c'est-à-dire la valeur Path). Si aucune partie n'a l'en-tête Content-Disposition=attachment, la première partie du multipart est traitée comme le corps de l'enregistrement de sortie et les autres parts sont traitées comme des pièces jointes.

Pour les fichiers binaires, le composant tHTTPClient enregistre le corps de la réponse HTTP dans un fichier, sans le modifier. Si aucun nom n'est spécifié dans l'en-tête Content-Disposition, le fichier de résultats sera nommé d'après le nom de la ressource, ave un suffixe _0.

Note InformationsRemarque : Cette option est disponible uniquement lorsque vous avez installé la mise à jour mensuelle 8.0.1-R2023-05 du Studio Talend ou une mise à jour plus récente fournie par Talend. Pour plus d'informations, contactez votre administrateur ou administratrice.

Paramètres avancés

Statistiques du tStatCatcher Cochez cette case pour collecter les données de log au niveau du Job ainsi qu'au niveau de chaque composant.
Connection timeout (ms) Configurez le délai avant expiration (en millisecondes) de l'établissement de la connexion au serveur par le connecteur. Une erreur survient si une tentative d'établissement de la connexion échoue.
Receive timeout (ms) Configurez le délai avant expiration (en millisecondes) de la réception des données de réponse. Une erreur survient si aucune donnée n'est reçue lorsque le délai avant expiration est dépassé.
Bypass server certificate validation Sélectionnez cette option pour empêcher le client de valider le certificat du serveur.

Il n'est pas recommandé d'utiliser cette option dans des environnements de production.

Use a proxy Sélectionnez cette option pour utiliser un proxy HTTP ou SOCKS.
  • Proxy type (Type de proxy) : sélectionnez le type de proxy à utiliser, HTTP ou SOCKS. 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) : saisissez les identifiants nécessaires à l'authentification au proxy. Ces deux champs sont disponibles uniquement lorsque l'option HTTP est sélectionnée dans la liste déroulante Proxy type.
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 en cas d'erreur de connexion ou 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 HTTPClient (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 composant 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 composant attend donc 600 millisecondes. Une troisième tentative est effectuée (deuxième tentative). Une réponse HTTP 503 est retournée. La durée d'attente est multipliée par 2, le composant 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.

Accept redirections Sélectionnez 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.

  • 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.
  • Pagination strategy : sélectionnez la stratégie de pagination à utiliser. Actuellement, la seule stratégie disponible est Offset/limit. La stratégie offset/limit 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. Une fois l'option Pagination strategy appliquée, une requête s'arrête lorsque le dernier appel retourne 0 élément.
  • 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).
Note InformationsRemarque : L'option Pagination est disponible uniquement si vous avez installé la mise à jour mensuelle 8.0.1-R2023-05 du Studio Talend ou une plus récente fournie par Talend. Pour plus d'informations, contactez votre administrateur ou administratrice.
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.

Ajout de pièces jointes Sélectionnez cette option pour ajouter ces fichiers en tant que pièces jointes dans une requête multipart. La table Files to upload s'affiche lorsque vous sélectionnez cette option, ce qui vous permet de configurer les paramètres suivants :
  • Content type : définissez le type de contenu du fichier défini par le protocole HTTP. Consultez https://www.w3.org/Protocols/rfc1341/4_Content-Type.html (en anglais) pour plus d'informations.
  • Encoding : configurez l'encodage du fichier.
  • Path to file : saisissez le chemin d'accès complet au fichier à charger.
  • Attachment name : définissez l'ID de la pièce jointe formé par le protocole HTTP.

L'option Add attachments est disponible lorsque vous sélectionnez l'option Request body et que vous sélectionnez l'option Form data dans la liste déroulante Body type de la vue Basic settings.

Note InformationsRemarque : Cette option est disponible uniquement lorsque vous avez installé la mise à jour mensuelle 8.0.1-R2023-05 du Studio Talend ou une mise à jour plus récente fournie par Talend. Pour plus d'informations, contactez votre administrateur ou administratrice.
Force JSON numbers to "Double" type in response body Sélectionnez cette option si vous souhaitez forcer la conversion de tous les nombres JSON en type Double. Il n'est pas toujours possible de faire la différence entre les nombres de type Integer et les nombres de type Double en JSON.

Par exemple, un tableau de coordonnées géographiques devant contenir des types Double uniquement peut avoir un de ses éléments de type déduit comme Integer "[47, -1.567075]". Cela peut induire des erreurs, car le connecteur va tenter de générer un tableau de type Integer et d'y inclure un type Double. Forcer le passage de tous les nombres au type Double permet d'éviter ces erreurs.

Cette option est disponible uniquement lorsque vous sélectionnez JSON dans la liste déroulante Response body format de la vue Basic settings.

Die on error Sélectionnez cette option pour arrêter l'exécution du Job si le code de statut de la réponse n'est pas 2xx.

Variables globales

Variables globales

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, lorsque le composant contient cette case.

NB_LINE : nombre de lignes lues par un composant d'entrée ou passées à un composant de sortie. Cette variable est une variable After et retourne un entier.

Utilisation

Règle d'utilisation Ce composant peut être utilisé en composant intermédiaire dans un flux de données ou en composant de fin dans un Job design.
Limitations Ce composant ne peut être placé juste après un tRESTRequest. La solution de contournement consiste à placer un composant tMap entre les deux composants afin de copier les données d'entrée dans la sortie.

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.