Primeiro endpoint
Vamos começar pelo menor programa Empilha possível. Nesta página você instala o framework, cria uma rota e vê uma resposta no terminal.
Antes de começar
Você precisa do Bun 1.3 ou mais recente.
Crie o projeto
Em uma pasta vazia:
sh
bun init -y
bun add empilhaAtive decorators no tsconfig.json:
json
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"experimentalDecorators": true,
"strict": true,
"noEmit": true,
"types": ["bun"]
}
}Crie uma rota
Crie src/app.ts:
ts
import { createApplication, defineModule, Controller, Get } from "empilha";
@Controller("/")
class AppController {
@Get("/")
index() {
return { message: "Minha primeira API Empilha" };
}
}
const AppModule = defineModule({
name: "app",
controllers: [AppController],
});
const app = await createApplication(AppModule);
await app.run({ port: 4000 });Inicie:
sh
bun src/app.tsO terminal mostra:
text
🚀 API: http://localhost:4000Faça uma requisição em outro terminal:
sh
curl http://localhost:4000json
{
"message": "Minha primeira API Empilha"
}Leia o código em quatro frases
@Controller("/")dá um prefixo às rotas da classe.@Get("/")transformaindex()em uma rota GET.createApplication(AppModule)compila o módulo e registra seus controllers.run({ port: 4000 })abre a porta HTTP.
Importar uma classe não registra nada globalmente. A aplicação conhece somente os controllers declarados no AppModule.
Guarde esta forma
text
descreva com decorators → defineModule() → createApplication() → run()Tudo o que você aprender daqui em diante se encaixa dentro do módulo, na configuração da aplicação ou depois da compilação.