Table of Contents
Uma API desenvolvida para o teste técnico da Shopper.
Back-end de um serviço que gerencia a leitura individualizada de consumo de água e gás. Para facilitar a coleta da informação, o serviço utilizará IA para obter a medição através da foto de um medidor.
URL base: https://localhost:3333
Método | Endpoint | Descrição | Body da requisição |
---|---|---|---|
GET |
/<customer_list>/list?measure_type= |
Responsável por listar as medidas realizadas por um determinado cliente, podendo filtrar pelo tipo: "WATER" ou "GAS" | - |
POST |
/upload |
Responsável por receber uma imagem em base 64, consultar o Gemini e retornar a medida lida pela API | { "image": "base64", "customer_code": "string", "measure_datetime": "datetime", "measure_type": "WATER" ou "GAS" } |
PATCH |
/confirm |
Responsável por confirmar ou corrigir o valor lido pelo LLM | { "measure_uuid": "string", "confirmed_value": integer } |
GET /<cutomer_code>/list?measure_type=
Status Code | Descrição | Resposta |
---|---|---|
200 | Operação realizada com sucesso | { "customer_code": string, "measures": [ { "measure_uuid": string, "measure_datetime": datetime, "measure_type": string, "has_confirmed":boolean, "image_url": string }, { "measure_uuid": string, "measure_datetime": datetime, "measure_type": string, "has_confirmed":boolean, "image_url": string } ] } |
400 | Parâmetro measure type diferente de WATER ou GAS | { "error_code": "INVALID_TYPE", "error_description": “Tipo de medição não permitida” } |
404 | Nenhum registro encontrado | { "error_code": "MEASURES_NOT_FOUND", "error_description": "Nenhuma leitura encontrada" } |
POST /upload
Status Code | Descrição | Resposta |
---|---|---|
200 | Operação realizada com sucesso | { "image_url": string, "measure_value": integer, "measure_uuid": string } |
400 | Os dados fornecidos no corpo da requisição são inválidos | { "error_code": "INVALID_DATA", "error_description": Dados inválidos. Por favor informe customer_code, measure_datetime, measure_type válidos e imagem no formato base64. } |
409 | Já existe uma leitura para este tipo no mês atual | { "error_code": "DOUBLE_REPORT", "error_description": "Leitura do mês já realizada" } |
PATCH /confirm
Status Code | Descrição | Resposta |
---|---|---|
200 | Operação realizada com sucesso | { "success": true } |
400 | Os dados fornecidos no corpo da requisição são inválidos | { "error_code": "INVALID_DATA", "error_description": Dados inválidos. Por favor informe measure_uuid e confirmed_value válidos. } |
404 | Leitura não encontrada | { "error_code": "MEASURE_NOT_FOUND", "error_description": "Leitura não encontrada" } |
409 | Leitura já confirmada | { "error_code": "CONFIRMATION_DUPLICATE", "error_description": "Leitura do mês já confirmada" } |
Clone o projeto
git clone https://github.com/aliine98/teste-backend-shopper
Entre no diretório do projeto
cd teste-backend-shopper
Instale as depêndencias
npm install
Inicie o docker
docker compose up
Feito com ❤️ por Aline Bevilacqua!