- App FastAPI (main.py, app/): rotas /health e /dados_retorno, middleware anti-scanner, logging configurado - Config via configs.json (Pydantic); segredos fora do codigo e do git (.gitignore) - Dockerfile (oracledb thin, HEALTHCHECK) + requirements.txt + .dockerignore - Deploy Podman/Quadlet + Caddy em deploy/ - Docs: CLAUDE.md + docs/ (arquitetura, deploy, known-issues) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1,020 B
Python
33 lines
1,020 B
Python
# app/services/api_tracker.py
|
|
import logging
|
|
|
|
|
|
def registrar_contador(
|
|
conn, api, endpoint, metodo, status_code, sucesso, duracao_ms, erro=None
|
|
):
|
|
"""Grava uma linha na tabela contadores_api."""
|
|
cursor = conn.cursor()
|
|
try:
|
|
cursor.execute(
|
|
"""
|
|
INSERT INTO orvel_ti.contadores_api
|
|
(api, endpoint, metodo_http, status_code, sucesso, duracao_ms, mensagem_erro)
|
|
VALUES
|
|
(:api, :endpoint, :metodo, :status, :sucesso, :duracao, :erro)
|
|
""",
|
|
{
|
|
"api": api,
|
|
"endpoint": endpoint,
|
|
"metodo": metodo,
|
|
"status": status_code,
|
|
"sucesso": "S" if sucesso else "N",
|
|
"duracao": duracao_ms,
|
|
"erro": erro[:500] if erro else None,
|
|
},
|
|
)
|
|
conn.commit()
|
|
except Exception as e:
|
|
conn.rollback()
|
|
logging.error(f"Falha ao gravar contador: {e}")
|
|
finally:
|
|
cursor.close()
|