Skip to content

Remplacer des éléments du catalogue

put

/catalogs/{catalog_name}/items

Utilisez cet endpoint pour remplacer plusieurs éléments dans votre catalogue.

Si un élément du catalogue n’existe pas, cet endpoint créera l’élément dans votre catalogue. Chaque requête peut prendre en charge jusqu’à 50 éléments de catalogue. Cet endpoint est asynchrone.

Conditions préalables

Pour utiliser cet endpoint, vous aurez besoin d’une clé API avec l’autorisation catalogs.replace_items.

Limite de débit

Cet endpoint a une limite de débit partagée de 16 000 requêtes par minute entre tous les endpoints d’éléments de catalogue asynchrones, comme documenté dans Limites de débit de l’API.

Paramètres de chemin

Paramètre Requis Type de données Description
catalog_name Requis Chaîne de caractères Nom du catalogue.

Paramètres de requête

Paramètre Requis Type de données Description
items Requis Tableau Un tableau contenant des objets d’éléments. Chaque objet doit avoir un ID. Les objets d’éléments doivent contenir des champs qui existent dans le catalogue. Jusqu’à 50 objets d’éléments sont autorisés par requête.

Exemple de requête

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
curl --location --request PUT 'https://rest.iad-03.braze.com/catalogs/restaurants/items' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
  "items": [
    {
      "id": "restaurant1",
      "Name": "Restaurant",
      "Loyalty_Program": false,
      "Location": [-73.988103, 40.779109],
      "Preferences": {
        "favorite_brand": "Nike",
        "shirt_size": "L"
      },
      "Top_Dishes": [
        "Hamburger",
        "Deluxe Cheeseburger"
      ],
      "Open_Time": "2021-09-03T09:03:19.967+00:00"
    },
    {
      "id": "restaurant3",
      "City": "San Francisco",
      "Rating": 2,
      "Top_Dishes": [
        "Hot Dog",
        "French Fries"
      ]
    }
  ]
}'

Réponse

Trois codes de statut de réponse existent pour cet endpoint : 202, 400 et 404.

Exemple de réponse réussie

Le code de statut 202 pourrait renvoyer le corps de réponse suivant.

1
2
3
{
  "message": "success"
}

Exemple de réponse échouée

Le code de statut 400 pourrait renvoyer le corps de réponse suivant. Consultez la section Résolution des problèmes pour plus d’informations concernant les erreurs que vous pourriez rencontrer.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "errors": [
    {
      "id": "invalid-fields",
      "message": "Some of the fields given do not exist in the catalog",
      "parameters": [
        "id"
      ],
      "parameter_values": [
        "restaurant1"
      ]
    }
  ],
  "message": "Invalid Request"
}

Résolution des problèmes

Le tableau suivant répertorie les erreurs possibles et les étapes de résolution associées.

Erreur Résolution des problèmes
catalog-not-found Vérifiez que le nom du catalogue est valide.
company-size-limit-already-reached La limite de stockage du catalogue est atteinte. Pour en savoir plus sur les niveaux de stockage, consultez Limitations du stockage de données.
company-size-limit-surge La requête dépasse la capacité de stockage restante de votre entreprise pour les catalogues. Réessayez avec une mise à jour plus petite. Pour en savoir plus sur les niveaux de stockage, consultez Limitations du stockage de données.
ids-not-string Confirmez que chaque ID d’élément est une chaîne de caractères.
ids-not-unique Vérifiez que chaque ID d’élément est unique.
ids-too-large La limite de caractères pour chaque ID d’élément est de 250 caractères.
item-array-invalid items doit être un tableau d’objets.
items-missing-ids Certains éléments n’ont pas d’ID. Confirmez que chaque élément possède un ID.
items-too-large Les valeurs des éléments ne peuvent pas dépasser 5 000 caractères.
invalid-ids Les caractères pris en charge pour les noms d’ID d’éléments sont les lettres, les chiffres, les tirets et les traits de soulignement.
invalid-fields Confirmez que tous les champs que vous envoyez dans la requête API existent déjà dans le catalogue. Cela n’a rien à voir avec le champ ID mentionné dans l’erreur.
invalid-keys-in-value-object Les clés d’objet d’élément ne peuvent pas inclure . ou $.
too-deep-nesting-in-value-object Les objets d’éléments ne peuvent pas avoir plus de 50 niveaux d’imbrication.
request-includes-too-many-items Votre requête contient trop d’éléments. La limite d’éléments par requête est de 50.
unable-to-coerce-value Les types d’éléments ne peuvent pas être convertis.
New Stuff!