tempest-express-sdk¶
Blocos de construção compartilhados para serviços Express + Zod + tempest-db-js —
um porte Node.js/TypeScript das convenções do
tempest-fastapi-sdk. 🚀
TypeScript rígido, imports com alias @ (sem sufixo .js), Swagger UI + Redoc
nativos gerados direto dos seus schemas Zod, e uma pilha em camadas
router → controller → service → repository → model sobre o
tempest-db-js.
Nunca usou Node.js ou JavaScript? Comece aqui
A trilha Começando do zero leva você de "nunca abri um terminal" até um app rodando — instalar o Node, o mínimo de JS/TS, e o primeiro app passo a passo.
Status: paridade com o tempest-fastapi-sdk (v0.20.0)
O SDK atingiu paridade de features com o tempest-fastapi-sdk. Veja o
Changelog e o Roadmap.
Por que usar¶
Você define o schema uma vez com Zod e ganha validação, tipos e documentação OpenAPI ao mesmo tempo:
import { createApp, createOpenApiRegistry, runServer, z } from "tempest-express-sdk";
const registry = createOpenApiRegistry();
const Item = registry.register(
"Item",
z.object({ id: z.string().uuid(), name: z.string() }),
);
const app = await createApp({
corsOrigins: "*",
openapi: { registry, info: { title: "Minha API", version: "1.0.0" } },
configure: (app) => {
app.get("/api/items", (_req, res) => res.json([]));
},
});
await runServer(app, { host: "127.0.0.1", port: 8000 });
Ao subir, você já tem:
- Swagger UI em
/docs - Redoc em
/redoc - OpenAPI JSON em
/openapi.json - Health check em
/health
O que tem dentro¶
| Área | Exports |
|---|---|
| core | JSONLogger, contexto de request-id, defineEnum |
| exceptions | AppException + subclasses HTTP, MessageCatalog (i18n) |
| schemas | z (com OpenAPI), baseResponseSchema, paginação (offset + cursor) |
| settings | loadSettings, baseAppSettingsShape |
| db | re-export do tempest-db-js + BaseModel, helpers de coluna |
| services / controllers | BaseService, BaseController |
| utils | CPF/CNPJ/CEP/telefone/UF, PasswordUtils, JWTUtils, tokens, throttle |
| auth | UserAuthService, middleware JWT, makeAuthRouter |
| api | createApp, runServer, Swagger/Redoc, health |
Próximos passos¶
- 🌱 Iniciante? Começando do zero → Seu primeiro app
- Instalação
- Tutorial
- Glossário — termos explicados
- Autenticação (JWT)