Uma API REST simples e robusta construída com Python e Flask para validar dados comuns do Brasil, como CPF e CNPJ, e para consultar endereços a partir de um CEP. Este projeto foi desenvolvido para demonstrar habilidades em desenvolvimento back-end, criação de APIs e integração com serviços de terceiros.
- Validação de CPF: Verifica se um número de CPF é matematicamente válido, incluindo a checagem dos dígitos verificadores.
- Validação de CNPJ: Verifica se um número de CNPJ é válido de acordo com o algoritmo oficial.
- Consulta de CEP: Integra-se com a BrasilAPI para retornar informações de endereço completas a partir de um CEP.
- Python: Linguagem principal do projeto.
- Flask: Micro-framework web para a criação da API.
- Requests: Biblioteca para fazer chamadas HTTP para a API externa de CEP.
- Postman: Ferramenta utilizada para testar os endpoints da API durante o desenvolvimento.
Siga os passos abaixo para rodar a aplicação localmente.
1. Clone o repositório:
git clone https://github.com/wallax0x/api_validadora.git
cd api_validadora2. Crie e ative um ambiente virtual:
- No Windows:
python -m venv venv .\venv\Scripts\activate
- No macOS/Linux:
python3 -m venv venv source venv/bin/activate
3. Instale as dependências:
pip install -r requirements.txt(Observação: você precisará criar o arquivo requirements.txt com o comando pip freeze > requirements.txt)
4. Inicie o servidor Flask:
python run.pyA API estará rodando em http://127.0.0.1:5000.
Aqui estão os endpoints disponíveis e como usá-los.
- Método:
POST - URL:
/api/v1/cpf/validar - Corpo (Body):
{ "cpf": "111.444.777-35" } - Resposta de Sucesso (200 OK):
{ "status": "valido", "cpf": "111.444.777-35" }
- Método:
POST - URL:
/api/v1/cnpj/validar - Corpo (Body):
{ "cnpj": "00.000.000/0001-91" } - Resposta de Sucesso (200 OK):
{ "status": "valido", "cnpj": "00.000.000/0001-91" }
- Método:
GET - URL:
/api/v1/cep/<cep> - Exemplo de Uso:
http://127.0.0.1:5000/api/v1/cep/01001000 - Resposta de Sucesso (200 OK):
{ "cep": "01001000", "state": "SP", "city": "São Paulo", "neighborhood": "Sé", "street": "Praça da Sé", "service": "open-cep" }