Em projetos de integração entre sistemas de varejo online, um dos maiores desafios é descobrir e documentar os endpoints disponíveis nas aplicações envolvidas. Muitas vezes, a documentação é incompleta ou simplesmente inexistente.
Precisávamos de uma ferramenta simples, rápida e confiável para gerar uma visão consolidada das rotas de cada sistema.
Desenvolvemos um script que varre o projeto em busca de decoradores de rota (APIs Flask) e gera um arquivo openapi.json. Esse arquivo pode ser carregado no Swagger UI, transformando endpoints encontrados em uma documentação navegável.
import re, os, json
ROUTE_RE = re.compile(r'@app\.route\(["']([^"']+)["'].*?\)')
def scan_dir(path):
endpoints = []
for root, _, files in os.walk(path):
for f in files:
if f.endswith(".py"):
text = open(os.path.join(root,f)).read()
for match in ROUTE_RE.findall(text):
endpoints.append(match)
return endpoints
def to_openapi(endpoints):
return {
"openapi": "3.0.0",
"info": {"title": "API Map", "version": "1.0"},
"paths": {ep: {"get": {"responses": {"200": {"description": "OK"}}}} for ep in endpoints}
}
if __name__ == "__main__":
eps = scan_dir("projeto_varejo")
spec = to_openapi(eps)
with open("openapi.json", "w") as f:
json.dump(spec, f, indent=2)
print("Mapa Swagger gerado em openapi.json")
Com o openapi.json pronto, basta criar um HTML simples apontando para o arquivo:
<script src="https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"></script>
<script>
SwaggerUIBundle({ url: "openapi.json", dom_id: "#swagger-ui" })
</script>
Ao abrir no navegador, obtém-se uma documentação interativa, navegável e pronta para testes.
O uso de Python como ferramenta de investigação de endpoints foi decisivo na integração do HUB de Varejos Online da Cara Core Informática. Essa prática permitiu transformar um desafio técnico em uma documentação viva e interativa, acelerando a integração e trazendo segurança para o ecossistema digital de varejo.
👉 Esse modelo pode ser replicado por qualquer empresa que precise mapear APIs legadas ou integrar múltiplos sistemas em projetos complexos de varejo e logística.