Los encabezados HTTP son pares clave-valor que se adjuntan a cada solicitud y respuesta HTTP y que contienen información sobre la solicitud en sí —independiente del contenido que se envía—, como quién la solicita, en qué formato espera los datos y cómo deben procesarse. En la gestión de feeds, los encabezados permiten que una plataforma de feeds se autentique ante una API, especifique que está enviando o esperando JSON en lugar de XML, y transmita instrucciones de almacenamiento en caché o compresión, todo ello sin que dicha información sature los datos del producto en el cuerpo de la solicitud.

Por qué es importante para la gestión de la alimentación animal

Cada conexión automatizada entre una plataforma de feeds y un canal (Google Merchant Center, Meta Catalog, el ERP propio de un minorista) depende de que los encabezados hagan su trabajo correctamente. Authorization Un encabezado que contiene un token no válido o caducado provocará que un envío de feed que de otro modo estaría perfectamente formateado falle por completo, y un token faltante o incorrecto Content-Type El encabezado puede provocar que un canal interprete erróneamente una carga útil JSON como texto plano, o viceversa, corrompiendo silenciosamente una carga. Los encabezados también son donde reside la lógica de limitación de velocidad y reintento: muchas API devuelven encabezados como Retry-After or X-RateLimit-Remaining Esto permite indicar a una plataforma de feeds cuántas solicitudes más puede procesar antes de que se le restrinja el flujo de solicitudes, lo cual es importante al sincronizar decenas de miles de SKU con un canal que limita las solicitudes por minuto. La depuración de una sincronización de feeds fallida suele consistir en inspeccionar primero los encabezados, ya que el cuerpo de una solicitud puede parecer perfectamente correcto, mientras que un encabezado está causando el rechazo de forma silenciosa.

Cómo Funciona

Los encabezados se envían como líneas de texto plano en la parte superior de una solicitud o respuesta HTTP, separadas de la URL y el cuerpo. Una solicitud típica a una API de feeds podría incluir: Authorization: Bearer <token> para comprobar la identidad de la persona que llama, Content-Type: application/json declarar el formato de los datos que se envían y Accept: application/json para especificar el formato esperado de vuelta. A diferencia de un parámetro de consulta o el otro Parámetros de URL que aparecen directamente en la barra de direcciones, los encabezados son invisibles en la propia URL, lo que los convierte en el lugar adecuado para información confidencial como tokens de autenticación que no deberían aparecer en el historial del navegador o los registros del servidor. Algunos encabezados son establecidos automáticamente por el cliente o el servidor (como Date or Content-Length), mientras que otros, en particular la autenticación y los encabezados de seguimiento personalizados, son configurados explícitamente por quien crea la integración.

Ejemplo

<!-- Representative HTTP request headers sent when a feed platform
     pushes a product update to a channel's API -->
<item>
  <g:id>SKU-40217</g:id>
  <title>Ceramic Plant Pot - 8 inch, Terracotta</title>
  <g:price>18.50 USD</g:price>
  <sync_request_headers>
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    Accept: application/json
  </sync_request_headers>
</item>

El sync_request_headers El bloque de arriba no es un atributo real de la fuente de datos, sino que ilustra los metadatos del encabezado que acompañan a los datos de este elemento cada vez que se envía a un canal mediante una llamada a la API en lugar de una carga masiva de archivos.

Conceptos relacionados

Los encabezados funcionan junto con los parámetros de consulta y los parámetros de URL que también se transmiten con una solicitud, pero de forma independiente. La principal diferencia radica en su visibilidad: los encabezados no se incluyen en la URL, por lo que los tokens de autenticación se almacenan allí en lugar de añadirse a un enlace. En conjunto, los tres elementos definen lo que la API de un canal recibe realmente, y un error en cualquiera de ellos es una de las causas más comunes de que la sincronización de un feed falle silenciosamente.