Les connecteurs de données prennent désormais en charge le mappage des réponses API JSON et XML. Si votre API renvoie du XML, Intercom le convertira automatiquement en JSON avant de mapper les objets et tableaux. Toutes les règles et limitations de mappage décrites ci-dessous s'appliquent à la structure JSON convertie.
Objets et tableaux que vous pouvez mapper
Note : Pour mapper des données de date à un attribut Datetime sur un Objet personnalisé, nous ne prenons en charge que le mappage des chaînes au format ISO 8601, par ex. 2008-01-10T11:00:00-05:00
Objet JSON simple
Vous pouvez mapper les objets API racine aux objets Personnes, Conversation et Personnalisés. Tous les attributs API sont accessibles.
{
"type": "admin",
"id": "493881",
"name": "Hoban Washburne",
"email": "wash@serenity.io",
"away_mode_enabled": false,
"away_mode_reassign": false
}
Objets JSON imbriqués
Vous pouvez mapper 3 objets API (root, order, client_details) aux objets Personnes, Conversation et Personnalisés. Tous les attributs API sont accessibles.
{
"order": {
"id": 450789469,
"admin_graphql_api_id": "gid://shopify/Order/450789469",
"app_id": null,
"browser_ip": "0.0.0.0",
"buyer_accepts_marketing": false,
"cancel_reason": null,
"cancelled_at": null,
"cart_token": "68778783ad298f1c80c3bafcddeea02f",
"checkout_id": 901414060,
"checkout_token": "bd5a8aa1ecd019dd3520ff791ee3a24c",
"client_details": {
"accept_language": null,
"browser_height": null,
"browser_ip": "0.0.0.0",
"browser_width": null,
"session_hash": null,
"user_agent": null
}
}
}
Tableaux de premier niveau
L'objet racine est un tableau
Vous pouvez mapper le tableau racine à un type d'Objet personnalisé. Tous les attributs API d'un élément sont accessibles (le premier élément est pris comme représentatif).
[
{
"type": "admin",
"id": "493881",
"name": "Hoban Washburne",
"email": "wash@serenity.io",
"away_mode_enabled": false,
"away_mode_reassign": false
},
{
"type": "admin",
"email": "mal@serenity.io",
"id": "646303",
"name": "Malcolm Reynolds ",
"away_mode_enabled": true,
"away_mode_reassign": false
}
]
Tableaux imbriqués
Vous pouvez mapper les tableaux imbriqués à l'intérieur des objets (pas d'autres tableaux). Vous pouvez mapper ces tableaux à des Objets personnalisés.
{
"order": {
"id": 450789469,
"discount_codes": [
{
"code": "TENOFF",
"amount": "10.00",
"type": "fixed_amount"
}
],
"note_attributes": [
{
"name": "custom engraving",
"value": "Happy Birthday"
},
{
"name": "colour",
"value": "green"
}
]
}
}
Tableaux que vous ne pouvez pas mapper
Tableaux imbriqués à l'intérieur d'autres tableaux
Vous ne pouvez pas accéder aux tableaux imbriqués à l'intérieur des éléments d'autres tableaux. Cela est dû au fait que nous ne savons pas quel élément du tableau de premier niveau choisir. Ainsi, dans l'exemple ci-dessous, vous pouvez mapper le tableau order à un Objet personnalisé. Mais pas les tableaux discount_codes, car ils sont imbriqués dans le tableau orders.
{
"orders": [
{
"id": 1,
"discount_codes": [
{
"code": "TENOFF",
"amount": "10.00",
"type": "fixed_amount"
}
],
"note_attributes": [
{
"name": "custom engraving",
"value": "Happy Birthday"
},
{
"name": "colour",
"value": "green"
}
]
},
{
"id": 2,
"discount_codes": [
{
"code": "TENOFF",
"amount": "10.00",
"type": "fixed_amount"
}
],
"note_attributes": [
{
"name": "custom engraving",
"value": "Happy Birthday"
},
{
"name": "colour",
"value": "green"
}
]
}
]
}
Envoi d'objets imbriqués dans les requêtes
Les connecteurs de données ne prennent actuellement en charge que l'envoi de paramètres plats (clé/valeur) dans les corps de requête. Les paramètres d'objets et tableaux imbriqués ne sont pas pris en charge.
Cela signifie que si une API tierce nécessite un objet imbriqué dans la requête — par exemple, les points de terminaison d'annulation et de remboursement de commande de Shopify nécessitent un objet buyer_identity — l'action ne peut pas être réalisée avec succès via un connecteur de données.
La prise en charge des paramètres d'objets et tableaux imbriqués dans les corps de requête est prévue dans notre feuille de route. Nous mettrons à jour cet article lorsqu'elle sera disponible.
