Registrar novas marcas
Este endpoint é utilizado para registrar um lote de marcas de uma vez. É ideal para sistemas que precisam sincronizar uma grande quantidade de dados de marca.
POST /v1/batch/brands
Header
- Authorization: Basic Auth contendo a chave publica e secreta disponibilizadas para o cliente.
- Exemplo:
Basic <base64-encoded-credentials>
- Exemplo:
Exemplo de Autorização
Para gerar o valor de Authorization, você precisa codificar suas credenciais (public_key:secret_key) em base64. Por exemplo, se sua chave pública for public_key e sua chave secreta for secret_key, você deve codificar public_key:secret_key em base64.
echo -n 'public_key:secret_key' | base64
Corpo da Requisição
O corpo da requisição deve ser uma lista de objetos de marca, cada um contendo os seguintes campos:
| Campo | Tipo | Nullable | Descrição |
|---|---|---|---|
externalReference | string | Sim | Referência externa da marca para rastreabilidade. Se não fornecida, será gerada automaticamente. |
name | string | Não | Nome da marca. |
title | string | Não | Título da marca. |
description | string | Não | Descrição detalhada da marca. |
punctuation | int | Não | Pontuação para ordenação. |
similarTerms | string | Sim | Termos similares para busca. |
Exemplo de Corpo da Requisição
[
{
"externalReference": "brand-1",
"name": "Coca-Cola",
"title": "Coca-Cola",
"description": "Marca líder em bebidas",
"punctuation": 1,
"similarTerms": "refrigerante, bebida gaseificada"
},
{
"externalReference": "brand-2",
"name": "Nestlé",
"title": "Nestlé",
"description": "Marca global de alimentos",
"punctuation": 1,
"similarTerms": "chocolate, café, leite"
}
]
Processamento Assíncrono
O processamento das marcas é realizado de forma assíncrona através do Azure Service Bus. Isso significa que:
- A requisição retorna imediatamente com um
operationId - As marcas são processadas em background
- Notificações sobre o progresso são enviadas via webhook
- Cada marca é processada independentemente
Respostas
- 200: Retorna sucesso da operação. A resposta incluirá detalhes sobre o processamento da lista de marcas.
- 400: Retorna erro de requisição inválida. Isso geralmente ocorre devido a dados de entrada mal formatados ou faltando.
- 500: Retorna erro interno do servidor. Indica problemas no processamento da requisição no servidor.
Exemplo de Resposta para Sucesso (200)
{ "operationId": "402fe685-2060-432b-ac57-223eb2e680f3" }
Exemplo de Resposta para Erro (400)
{
"error": "Invalid request",
"details": "The name field is missing in one of the brand items."
}
Mensagem de notificação webhook
Quando a operação é processada, mensagens são enviadas para os endpoints de notificação registrados pelo webhook. As mensagens são enviadas para cada marca processada.
{
"operationId": "54d6a979-5f62-4e17-9d4c-dbd9f5ede403",
"relatedEntity": "Brand",
"eventType": 4,
"data": {
"externalReference": "brand-1",
"name": "Coca-Cola",
"title": "Coca-Cola",
"description": "Marca líder em bebidas",
"punctuation": 1,
"similarTerms": "refrigerante, bebida gaseificada"
},
"contractAccountId": "9f36a666-acd5-4987-a47f-3de247f65d82"
}
- OperationId: Identificador único da operação.
- RelatedEntity: Entidade relacionada ao evento (Brand).
- EventType: Tipo de evento.
- Os tipos possíveis para marca são:
- Brand_Created = 4
- Brand_Updated = 5
- Brand_Deleted = 6
- Os tipos possíveis para marca são:
- Data: Dados específicos do evento.
- ContractAccountId: Identificador da conta do contrato.
- Error: Detalhes do erro caso exista algum.