Skip to content

Sustituir elemento del catálogo

put

/catalogs/{catalog_name}/items/{item_id}

Utiliza este punto de conexión para sustituir un elemento de tu catálogo.

Si no se encuentra el item_id, este punto de conexión creará el elemento en tu catálogo. Este punto de conexión es síncrono.

Requisitos previos

Para utilizar este punto de conexión, necesitarás una clave de API con el permiso catalogs.replace_item.

Límite de velocidad

Este punto de conexión tiene un límite de velocidad compartido de 50 solicitudes por minuto entre todos los puntos finales de elementos de catálogo síncronos, como se documenta en Límites de velocidad de la API.

Parámetros de ruta

Parámetro Obligatorio Tipo de datos Descripción
catalog_name Obligatorio Cadena Nombre del catálogo.
item_id Obligatorio Cadena El ID del elemento del catálogo.

Parámetros de la solicitud

Parámetro Obligatorio Tipo de datos Descripción
items Obligatorio Matriz Un array que contiene objetos de elemento. Los objetos de elemento deben contener campos que existan en el catálogo, excepto el campo id. Solo se permite un objeto de elemento 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
curl --location --request PUT 'https://rest.iad-03.braze.com/catalogs/restaurants/items/restaurant1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
  "items": [
    {
      "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"
    }
  ]
}'

Respuesta

Existen tres respuestas de código de estado para este punto de conexión: 200, 400 y 404.

Ejemplo de respuesta correcta

El código de estado 200 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. Consulta Solución de problemas para obtener más información sobre los errores que puedes 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
arbitrary-error Se ha producido un error arbitrario. Inténtalo de nuevo o ponte en contacto con Soporte.
catalog-not-found Comprueba que el nombre del catálogo es válido.
filtered-set-field-too-long El valor del campo se está utilizando en un conjunto filtrado que supera el límite de caracteres de un elemento.
id-in-body Elimina cualquier ID de elemento en el cuerpo de la solicitud.
ids-too-large El límite de caracteres para cada ID de elemento es de 250 caracteres.
invalid-ids Los caracteres admitidos para los nombres de ID de elementos son letras, números, guiones y guiones bajos.
invalid-fields Confirma que todos los campos que envías en la solicitud de 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 elemento no pueden incluir . ni $.
item-already-exists El elemento ya existe en el catálogo.
item-array-invalid items debe ser un array de objetos.
items-too-large El límite de caracteres para cada elemento es de 5000 caracteres.
request-includes-too-many-items Solo puedes crear un elemento de catálogo por solicitud.
too-deep-nesting-in-value-object Los objetos de elemento no pueden tener más de 50 niveles de anidamiento.
unable-to-coerce-value Los tipos de elemento no se pueden convertir.
New Stuff!