Editar varios elementos del catálogo
/catalogs/{catalog_name}/items
Utiliza este punto final para editar varios elementos existentes en tu catálogo.
Cada solicitud puede admitir hasta 50 elementos. Este punto final es asíncrono.
Requisitos previos
Para utilizar este punto final, necesitarás una clave de API con el permiso catalogs.update_items
.
Límite de velocidad
Parámetros de la ruta
Parámetro | Obligatoria | Tipo de datos | Descripción |
---|---|---|---|
catalog_name |
Obligatoria | Cadena | Nombre del catálogo. |
Parámetros de la solicitud
Parámetro | Obligatoria | Tipo de datos | Descripción |
---|---|---|---|
items |
Obligatoria | Matriz | Una matriz que contiene objetos elemento. Los objetos artículo deben contener campos que existan en el catálogo. Se permiten hasta 50 objetos de artículo por solicitud. |
Ejemplo de solicitud
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
32
33
34
35
curl --location --request PATCH '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": {
"$add": [
"Biscuits",
"Coleslaw"
],
"$remove": [
"French Fries"
]
},
"Open_Time": "2021-09-03T09:03:19.967+00:00"
},
{
"id": "restaurant3",
"City": "San Francisco",
"Rating": 2,
"Top_Dishes": [
"Buffalo Wings",
"Philly Cheesesteak"
]
}
]
}'
Los operadores $add
y $remove
sólo son aplicables a campos de tipo array, y sólo son compatibles con los extremos PATCH.
Respuesta
Existen tres respuestas de código de estado para este punto final: 202
, 400
y 404
.
Ejemplo de respuesta positiva
El código de estado 202
podría devolver el siguiente cuerpo de respuesta.
1
2
3
{
"message": "success"
}
Ejemplo de respuesta de error
El código de estado 400
podría devolver el siguiente cuerpo de respuesta. Consulte la sección Solución de problemas para obtener más información sobre los errores que puede 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"
}
Solución de problemas
La siguiente tabla enumera los posibles errores devueltos y los pasos asociados para solucionarlos.
Error | Solución de problemas |
---|---|
catalog-not-found |
Compruebe que el nombre del catálogo es válido. |
ids-too-large |
Los ID de los artículos no pueden tener más de 250 caracteres. |
ids-not-strings |
Los ID de artículo deben ser de tipo cadena. |
ids-not-unique |
Los ID de los artículos deben ser únicos en la solicitud. |
invalid-ids |
Los ID de elementos solo pueden incluir letras, números, guiones y guiones bajos. |
invalid-fields |
Confirme que todos los campos que está enviando en la solicitud API ya existen en el catálogo. Esto no está relacionado con el campo ID mencionado en el error. |
invalid-keys-in-value-object |
Las claves de objeto de artículo no pueden incluir . ni $ . |
items-missing-ids |
Algunos artículos no tienen ID de artículo. Compruebe que cada artículo tiene un ID de artículo. |
item-array-invalid |
items debe ser un array de objetos. |
items-too-large |
Los valores de los elementos no pueden superar los 5.000 caracteres. |
request-includes-too-many-items |
Su solicitud tiene demasiados elementos. El límite de elementos por solicitud es de 50. |
too-deep-nesting-in-value-object |
Los objetos item no pueden tener más de 50 niveles de anidamiento. |
unable-to-coerce-value |
Los tipos de artículo no se pueden convertir. |