Atualizar itens do catálogo
/catalogs/{catalog_name}/items
Use esse ponto de extremidade para atualizar vários itens em seu catálogo.
Se um item de catálogo não existir, esse endpoint criará o item em seu catálogo. Cada solicitação pode suportar até 50 itens de catálogo. Esse ponto de extremidade é assíncrono.
Pré-requisitos
Para usar esse endpoint, você precisará de uma chave de API com a permissão catalogs.replace_items
.
Limite de taxa
Parâmetros da jornada
Parâmetro | Obrigatória | Tipo de dados | Descrição |
---|---|---|---|
catalog_name |
Obrigatória | String | Nome do catálogo. |
Parâmetros de solicitação
Parâmetro | Obrigatória | Tipo de dados | Descrição |
---|---|---|---|
items |
Obrigatória | Vetor | Um vetor que contém objetos de item. Cada objeto deve ter uma ID. Os objetos de item devem conter campos existentes no catálogo. Até 50 objetos de item são permitidos por solicitação. |
Exemplo de solicitação
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
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": {
"Latitude": 33.6112,
"Longitude": -117.8711
},
"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"
]
}
]
}'
Resposta
Há três respostas de código de status para esse endpoint: 202
, 400
e 404
.
Exemplo de resposta bem-sucedida
O código de status 202
poderia retornar o seguinte corpo de resposta.
1
2
3
{
"message": "success"
}
Exemplo de resposta de erro
O código de status 400
poderia retornar o seguinte corpo de resposta. Consulte Solução de problemas para obter mais informações sobre os erros que você pode encontrar.
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"
}
Solução de problemas
A tabela a seguir lista os possíveis erros retornados e as etapas de solução de problemas associadas.
Erro | Solução de problemas |
---|---|
catalog-not-found |
Verifique se o nome do catálogo é válido. |
ids-not-string |
Confirme que cada ID de item é uma string. |
ids-not-unique |
Verifique se cada ID de item é exclusivo. |
ids-too-large |
O limite de caracteres para cada ID de item é de 250 caracteres. |
item-array-invalid |
items deve ser um vetor de objetos. |
items-missing-ids |
Confirme se cada item tem um ID. |
items-too-large |
Os valores dos itens não podem exceder 5.000 caracteres. |
invalid-ids |
Os caracteres compatíveis com os nomes de ID de item são letras, números, hífens e sublinhados. |
invalid-fields |
Confirme se todos os campos que está enviando na solicitação de API já existem no catálogo. Isso não está relacionado ao campo ID mencionado no erro. |
invalid-keys-in-value-object |
As chaves de objeto do item não podem incluir . ou $ . |
too-deep-nesting-in-value-object |
Os objetos de item não podem ter mais de 50 níveis de aninhamento. |
request-includes-too-many-items |
Sua solicitação tem muitos itens. O limite de itens por solicitação é de 50. |
unable-to-coerce-value |
Os tipos de itens não podem ser convertidos. |