fastapi-todo

Como definir os modelos Pydantic para representar tarefas com atributos como título, descrição, prioridade e status?

Você pode definir os modelos Pydantic para representar uma tarefa com os atributos título, descrição, prioridade e status da seguinte forma:

from pydantic import BaseModel, Field
from typing import Optional, Literal

class Task(BaseModel):
    title: str = Field(..., description="Título da tarefa")
    description: Optional[str] = Field(None, description="Descrição detalhada da tarefa")
    priority: int = Field(..., ge=1, le=5, description="Prioridade da tarefa (1 a 5)")
    status: Literal["pendente", "em andamento", "concluída"] = Field(..., description="Status da tarefa")

Você pode usar o recurso Field do Pydantic para adicionar validações, descrições e exemplos aos campos, o que melhora a documentação automática da API12.

Esse modelo pode ser utilizado tanto para entrada (criação/atualização) quanto para resposta, conforme a necessidade dos endpoints43.

  1. https://pythonacademy.com.br/blog/pydantic-e-tipos-avancados  2

  2. https://pythonacademy.com.br/blog/introducao-ao-pydantic-validacao-e-modelagem-de-dados-simplificada-com-python  2

  3. https://fastapi.tiangolo.com/pt/python-types/  2 3

  4. https://fastapi.tiangolo.com/pt/tutorial/response-model/