fastapi-todo

Quais modelos de resposta devo criar para retornar informações das tarefas com status code adequado?

Para retornar informações das tarefas em uma API de gestão de tarefas, você deve criar modelos de resposta Pydantic que representem os dados essenciais da tarefa e utilizar status codes adequados para cada operação. Veja como estruturar isso:


Modelos de Resposta Pydantic

Um modelo típico para retorno de tarefa pode ser:

from pydantic import BaseModel
from typing import Optional, Literal

class TaskResponse(BaseModel):
    id: int
    title: str
    description: Optional[str] = None
    priority: int
    status: Literal["pendente", "em andamento", "concluída"]

Para retornar uma lista de tarefas, utilize uma lista desse modelo:

from typing import List

tasks: List[TaskResponse]

Status Codes Adequados

Os principais status codes para operações REST são123456:

Exemplo de uso no FastAPI:

from fastapi import FastAPI, status

app = FastAPI()

@app.get("/tasks", response_model=List[TaskResponse], status_code=status.HTTP_200_OK)
def list_tasks():
    ...

@app.post("/tasks", response_model=TaskResponse, status_code=status.HTTP_201_CREATED)
def create_task(task: TaskCreate):
    ...

@app.get("/tasks/{task_id}", response_model=TaskResponse, status_code=status.HTTP_200_OK)
def get_task(task_id: int):
    ...

Resumo

Assim, sua API será clara, padronizada e facilitará a integração com outros sistemas.

  1. https://www.erudio.com.br/blog/http-status-codes-em-servicos-rest/  2

  2. https://fastapi.tiangolo.com/pt/tutorial/response-status-code/  2

  3. https://fastapi.tiangolo.com/tutorial/response-status-code/  2

  4. https://ninelabs.blog/padrao-de-codigos-de-status-http-em-apis-rest/  2

  5. https://learn.microsoft.com/pt-br/partner-center/developer/referrals-api-response-codes  2

  6. https://www.luiztools.com.br/post/http-status-cheat-sheet/  2