Uso da API 🚀
A API da Food2C oferece acesso a uma vasta gama de dados da plataforma. Este guia detalhado irá orientá-lo sobre como realizar consultas e obter os dados necessários de forma eficiente.
Fluxo de Consulta 🔄
1. Parâmetros da Requisição 📝
Para realizar uma consulta, forneça os seguintes parâmetros na requisição:
-
source:
string(Fonte dos dados)A fonte dos dados que você deseja consultar. Pode ser, por exemplo, o nome de um banco de dados como
MEU_ECOMMERCE_FOOD2C. -
collection:
string(Coleção específica)A coleção específica dentro da fonte de dados que você deseja acessar. Por exemplo, uma tabela de clientes
customer. -
page_number:
integer(Número da página, padrão: 0)O número da página que você deseja acessar. A paginação é usada para dividir grandes conjuntos de dados em partes menores. O valor padrão é 0, que representa a primeira página.
-
page_size:
integer(Tamanho da página, padrão: 10)O número de registros que você deseja obter por página. O valor padrão é 10, o que significa que cada página retornará até 10 registros.
-
parameters:
object(Parâmetros adicionais, opcional)Um objeto contendo parâmetros adicionais que podem ser usados para filtrar ou modificar a consulta, baseado nas buscas do MongoDB. Este campo é opcional e pode incluir critérios específicos para refinar os resultados.
⚠️ Atenção: Dependendo do usuário, os acessos às coleções podem estar restritos. Certifique-se de que o usuário autenticado possui as permissões necessárias para acessar as coleções desejadas.
2. Cabeçalho da requisição 📋
Antes de enviar a requisição, é fundamental preparar o cabeçalho adequadamente. O cabeçalho deve conter a autorização necessária para acessar a API. A autorização é fornecida no formato Authorization: jwt_token, onde jwt_token deve ser substituído pelo token JWT obtido durante o processo de autenticação. Aqui está um exemplo detalhado de como estruturar o cabeçalho:
3. Especificações da Saída 📄
A resposta da API para uma consulta bem-sucedida incluirá os seguintes campos:
-
items:
List[dict](Lista de itens)Uma lista de dicionários, onde cada dicionário representa um registro da coleção consultada. Cada item contém os dados específicos da coleção.
-
total:
int(Total de registros)O número total de registros que correspondem à consulta, sem considerar a paginação.
-
page_number:
int(Número da página)O número da página atual dos resultados retornados. Este valor corresponde ao parâmetro
page_numberenviado na requisição. -
page_size:
int(Tamanho da página)O número de registros retornados por página. Este valor corresponde ao parâmetro
page_sizeenviado na requisição.
4. Envie uma requisição 🚀
Aqui está um exemplo de como fazer uma requisição HTTP para consultar dados da API:
Requisição:
POST /api-data HTTP/1.1
Host: api.food2c.com.br
Content-Type: application/json
Authorization: jwt_tokenNeste exemplo, usamos POST para enviar os parâmetros da consulta ao servidor. O cabeçalho Content-Type: application/json indica que o corpo da requisição está em JSON. Inclua o token JWT no cabeçalho Authorization como jwt_token, substituindo jwt_token pelo token real recebido após a autenticação.
Corpo da Requisição:
{
"source": "MEU_ECOMMERCE_FOOD2C",
"collection": "customer",
"page_number": 0,
"page_size": 10,
"parameters": {
"created_dt": {
"$gt": { "$date": "2024-01-01T00:00:00.000000" }
}
}
}Este exemplo de corpo de requisição demonstra a utilização de todos os parâmetros mencionados anteriormente, além de incluir um filtro adicional baseado na data de criação dos clientes. A consulta segue o padrão do MongoDB, oferecendo grande flexibilidade na filtragem dos resultados.
Pontos importantes:
📌 Parâmetros da consulta:
source: "MEU_ECOMMERCE_FOOD2C" (fonte dos dados)collection: "customer" (coleção específica)page_number: 0 (primeira página)page_size: 10 (10 registros por página)
🔍 Filtro avançado:
- Utiliza o operador
$gt(greater than) do MongoDB - Filtra clientes criados após 1º de setembro de 2024
💡 Dica: Esta estrutura permite consultas complexas e precisas, adaptando-se às necessidades específicas de cada aplicação.
📚 Nota: Para explorar todo o potencial das queries do MongoDB e conhecer outros operadores disponíveis, consulte a documentação oficial do MongoDB (opens in a new tab).
Resposta:
{
"data": [
{
"id": "12345",
"name": "João Silva",
"email": "joao.silva@exemplo.com",
"city": "São Paulo"
},
// ... mais registros ...
],
"total_count": 150,
"page_number": 0,
"page_size": 10
}A resposta inclui os dados solicitados, bem como informações sobre a paginação e o total de registros encontrados.
💡 Dica: Ajuste os parâmetros da consulta conforme necessário para obter os dados específicos que você precisa.
5. Referências entre tabelas 🔗
Às vezes, uma tabela pode conter referências a dados em outra tabela. Nesses casos, será necessário realizar uma nova busca para obter as informações completas.
Por exemplo, se a tabela "pedidos" contiver uma referência ao ID do cliente, você precisará fazer uma consulta adicional à tabela "clientes" para obter os detalhes completos do cliente.
Exemplo de consulta para obter detalhes do pedido:
{
"source": "MEU_ECOMMERCE_FOOD2C",
"collection": "pedidos",
"page_number": 0,
"page_size": 1,
"parameters": {
"id": "123456"
}
}Resposta:
{
"data": [
{
"id": "123456",
"cliente_id": "789",
"valor_total": 150.00,
"data_pedido": "2024-03-15T14:30:00.000Z"
}
],
"total_count": 1,
"page_number": 0,
"page_size": 1
}Para obter os detalhes do cliente, você precisará fazer uma nova consulta:
{
"source": "MEU_ECOMMERCE_FOOD2C",
"collection": "clientes",
"page_number": 0,
"page_size": 1,
"parameters": {
"id": "789"
}
}💡 Dica: Planeje suas consultas de forma eficiente para minimizar o número de requisições necessárias e otimizar o desempenho da sua aplicação.