ANÚNCIO

~/questoes/programacao

Qual é o papel principal dos schemas Pydantic em uma API FastAPI?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Para fixar

O Papel dos Schemas Pydantic na Validação de Dados em FastAPI

Conceito central

Schemas Pydantic funcionam como um contrato entre o cliente e o servidor, validando automaticamente os dados recebidos em uma requisição. Eles garantem que apenas dados corretos, nos tipos certos e dentro das regras esperadas, cheguem à lógica da sua aplicação.

Por que essa resposta faz sentido

Os schemas Pydantic validam os dados recebidos nas requisições e garantem sua integridade. Quando um cliente envia dados para sua API, o Pydantic verifica automaticamente se estão no formato esperado, se os tipos estão corretos e se atendem às regras definidas, rejeitando requisições malformadas antes de executar qualquer lógica.

Armadilhas comuns

  • Confundir schemas Pydantic com modelos de banco de dados — eles têm propósitos diferentes. O schema valida entrada, o modelo persiste dados.
  • Achar que o Pydantic criptografa senhas — ele apenas valida que um campo de senha foi enviado. A criptografia é um passo separado usando bcrypt ou passlib.
  • Usar schemas apenas para tipo de dado, esquecendo que podem validar regras de negócio complexas como formato de email, comprimento mínimo de senha e padrões customizados.

Entenda as alternativas

A

Armazenar dados no banco de dados é responsabilidade de modelos ORM (como SQLAlchemy) ou do driver de banco de dados, não dos schemas Pydantic. Os schemas validam antes, mas não fazem a persistência.

B

Esta é a função principal. Os schemas Pydantic recebem os dados da requisição, validam tipos de dados, campos obrigatórios, comprimentos mínimos/máximos e outras regras, rejeitando o que não atende aos critérios.

C

Criptografia de senhas é feita com bibliotecas como bcrypt ou passlib, não com schemas Pydantic. Os schemas validam que a senha foi fornecida, mas o hash é responsabilidade de funções específicas de segurança.

D

Geração de tokens JWT é feita por bibliotecas como python-jose, geralmente em um endpoint de login separado. Os schemas validam os dados de entrada, mas não geram tokens automaticamente.

Dica prática: Sempre crie um schema específico para cada requisição. Por exemplo, crie um `UsuarioCreate` para validar dados na criação de conta (com senha) e um `UsuarioResposta` para retornar ao cliente (sem incluir o hash da senha). Essa separação garante que você nunca expõe dados sensíveis acidentalmente.

Revise pensando: Se um cliente enviar um email inválido ou deixar a senha em branco em uma requisição de criação de usuário, em qual etapa o Pydantic vai rejeitar esse dado?