API Assíncrona de Consulta de CNPJ
Um serviço FastAPI que enfileira consultas de CNPJ, processa buscas no Sintegra Goiás de forma assíncrona e expõe resultados temporários por uma API baseada em tarefas.
Tecnologias
- Python
- FastAPI
- Celery
- RabbitMQ
- Redis
- Selenium
Visão geral
A API recebe um CNPJ por um endpoint POST e retorna um identificador de tarefa. Clientes podem consultar posteriormente o status da tarefa e o resultado temporário por meio de outro endpoint.
Fluxo assíncrono
O FastAPI valida e envia a requisição para o RabbitMQ. Um worker Celery consome a tarefa, usa Selenium para realizar a consulta e armazena temporariamente o resultado no Redis. A API então informa aos clientes os estados pendente, concluído, não encontrado ou tarefa inválida.
Qualidade e considerações operacionais
O projeto separa os testes da API e do worker, documenta a inicialização com Docker Compose e usa um TTL de uma hora no Redis para os resultados das tarefas. A política de cache temporário evita que dados de consultas concluídas sejam mantidos indefinidamente.