Validar um CPF (Cadastro de Pessoas Físicas) é uma tarefa comum em sistemas web, e criar um serviço REST para isso garante escalabilidade e reutilização. Este método utiliza Python e Flask, uma combinação leve e eficaz para construir APIs rapidamente, sem complexidade desnecessária.
Primeiro, crie um arquivo chamado app.py e importe as bibliotecas necessárias. O Flask será usado para criar o endpoint REST, e implementaremos a lógica de validação do CPF diretamente no script.
from flask import Flask, request, jsonify
app = Flask(__name__)
def validar_cpf(cpf):
# Remove caracteres não numéricos
cpf = ''.join(filter(str.isdigit, cpf))
# Verifica se o CPF tem 11 dígitos
if len(cpf) != 11:
return False
# Verifica se todos os dígitos são iguais
if cpf == cpf[0] * 11:
return False
# Cálculo do primeiro dígito verificador
soma = sum(int(digit) * (10 - i) for i, digit in enumerate(cpf[:9]))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
# Cálculo do segundo dígito verificador
soma = sum(int(digit) * (11 - i) for i, digit in enumerate(cpf[:10]))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
# Compara os dígitos calculados com os informados
return digito1 == int(cpf[9]) and digito2 == int(cpf[10])
@app.route('/validar-cpf', methods=['POST'])
def validar():
dados = request.get_json()
cpf = dados.get('cpf', '')
if not cpf:
return jsonify({'valido': False, 'mensagem': 'CPF não informado'}), 400
resultado = validar_cpf(cpf)
return jsonify({'valido': resultado, 'cpf': cpf})
if __name__ == '__main__':
app.run(debug=True)
Para iniciar o serviço, execute o seguinte comando no terminal, dentro do diretório onde o arquivo app.py está salvo:
python app.py
O serviço estará disponível em http://127.0.0.1:5000/validar-cpf. Você pode testá-lo enviando uma requisição POST com o CPF no corpo da requisição.
| CPF de Entrada | Requisição JSON | Resposta Esperada |
|---|---|---|
| 123.456.789-09 | { "cpf": "123.456.789-09" } | { "valido": false, "cpf": "123.456.789-09" } |
| 529.982.247-25 | { "cpf": "529.982.247-25" } | { "valido": true, "cpf": "529.982.247-25" } |
| 111.111.111-11 | { "cpf": "111.111.111-11" } | { "valido": false, "cpf": "111.111.111-11" } |
Com este serviço REST, você automatiza a validação de CPF em segundos, garantindo que apenas números corretos sejam processados em seu sistema, evitando erros manuais e aumentando a confiabilidade dos dados.