🧩 Exercícios: Documentação OpenAPI, Swagger e Healthchecks
Spec Backend Com Python E Fastapi • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 18.1 — Customização de Metadados e Tags no Swagger UI
Contexto: Customização de Metadados e Tags no Swagger UI no contexto de Documentação OpenAPI, Swagger e Healthchecks.
Requisitos de Execução:
- Configurar descrições detalhadas, sumários, responses personalizadas e tags com metadados no OpenAPI.
Resultado Esperado
Swagger UI documentado com tags agrupadas e descrições ricas.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_18_1_SeuNome - Envie na tarefa:
Atividade Cap 18 - Documentação OpenAPI, Swagger e Healthchecks
🔑 Gabarito de Código & Solução Comentada
# openapi_metadata.py
from fastapi import FastAPI
tags_metadata = [
{"name": "Usuários", "description": "Operações de gestão de usuários e autenticação."},
{"name": "Pedidos", "description": "Processamento de pedidos e checkout."}
]
app = FastAPI(
title="Plataforma E-Commerce API",
description="API Corporativa documentada com OpenAPI 3.1",
version="2.0.0",
openapi_tags=tags_metadata
)
🔍 Nível 2: Prática
Problema 18.2 — Exemplos Ricos de Requisição e Resposta no OpenAPI Schema
Contexto: Exemplos Ricos de Requisição e Resposta no OpenAPI Schema no contexto de Documentação OpenAPI, Swagger e Healthchecks.
Requisitos de Execução:
- Configurar
openapi_examplesno Pydantic Field e Body para exibir payloads de exemplo na documentação interativa.
Resultado Esperado
Exemplos de payload exibidos no Swagger UI.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_18_2_SeuNome - Envie na tarefa:
Atividade Cap 18 - Documentação OpenAPI, Swagger e Healthchecks
🔑 Gabarito de Código & Solução Comentada
# openapi_examples.py
from pydantic import BaseModel, Field
class PedidoRequest(BaseModel):
item: str = Field(..., examples=["Mouse Ergonômico"])
qtd: int = Field(..., examples=[2])
valor: float = Field(..., examples=[199.90])
print("Exemplo configurado:", PedidoRequest.model_json_schema()["properties"]["item"]["examples"])
⚡ Nível 3: Integração
Problema 18.3 — Healthcheck Robusto com Verificação de Dependências (DB, Redis)
Contexto: Healthcheck Robusto com Verificação de Dependências (DB, Redis) no contexto de Documentação OpenAPI, Swagger e Healthchecks.
Requisitos de Execução:
- Implementar endpoint
/health/deepque verifique conectividade real com o banco e cache antes de retornar 200 ou 503.
Resultado Esperado
Healthcheck: Banco OK, Redis OK -> Status 200 Healthy.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_18_3_SeuNome - Envie na tarefa:
Atividade Cap 18 - Documentação OpenAPI, Swagger e Healthchecks
🔑 Gabarito de Código & Solução Comentada
# health_deep.py
def verificar_dependencias():
status_db = True
status_redis = True
tudo_ok = status_db and status_redis
return {
"status": "HEALTHY" if tudo_ok else "UNHEALTHY",
"checks": {"database": status_db, "redis": status_redis}
}
print(verificar_dependencias())
🏆 Nível 4: Desafio Corporativo
Problema 18.4 — Exportação do Schema OpenAPI JSON para Pipelines de CI/CD
Contexto: Exportação do Schema OpenAPI JSON para Pipelines de CI/CD no contexto de Documentação OpenAPI, Swagger e Healthchecks.
Requisitos de Execução:
- Criar script para exportar o arquivo
openapi.jsonestático para geração automatizada de SDKs de clientes.
Resultado Esperado
Arquivo openapi.json exportado com sucesso (45 endpoints mapeados).
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_18_4_SeuNome - Envie na tarefa:
Atividade Cap 18 - Documentação OpenAPI, Swagger e Healthchecks
🔑 Gabarito de Código & Solução Comentada
# export_openapi.py
import json
from fastapi import FastAPI
app = FastAPI(title="SDK Generator API", version="1.0.0")
def exportar_schema():
schema = app.openapi()
return json.dumps(schema, indent=2)
print("Schema OpenAPI exportado com sucesso (chars:", len(exportar_schema()), ")")