chore(docs): completar Fase 2 — requisitos y arquitectura
- Añade/actualiza `docs/requirements.md`, `docs/architecture.md`, `docs/api-integration.md`, `docs/data-model.md` - Documenta criterios de aceptación y decisiones técnico-arquitectónicas - Recomendación: añadir `docs/legal-considerations.md` (pendiente)
This commit is contained in:
24
backend/src/app.ts
Normal file
24
backend/src/app.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import Fastify, { FastifyInstance } from 'fastify';
|
||||
import cors from '@fastify/cors';
|
||||
import helmet from '@fastify/helmet';
|
||||
import rateLimit from '@fastify/rate-limit';
|
||||
import healthRoutes from './routes/health';
|
||||
|
||||
export function buildApp(): FastifyInstance {
|
||||
const app: FastifyInstance = Fastify({
|
||||
logger: false,
|
||||
});
|
||||
|
||||
void app.register(cors, { origin: true });
|
||||
void app.register(helmet);
|
||||
void app.register(rateLimit, { max: 1000, timeWindow: '1 minute' });
|
||||
void app.register(healthRoutes, { prefix: '/api' });
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
/**
|
||||
* Metadatos:
|
||||
* Autor: GitHub Copilot
|
||||
* Última actualización: 2026-02-07
|
||||
*/
|
||||
29
backend/src/index.ts
Normal file
29
backend/src/index.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import dotenv from 'dotenv';
|
||||
import { buildApp } from './app';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const port = Number(process.env.PORT ?? 3000);
|
||||
const app = buildApp();
|
||||
|
||||
const start = async () => {
|
||||
try {
|
||||
await app.listen({ port, host: '0.0.0.0' });
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Server listening on http://0.0.0.0:${port}`);
|
||||
} catch (err) {
|
||||
app.log.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
// Start only when run directly (avoids starting during tests)
|
||||
if (require.main === module) {
|
||||
start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Metadatos:
|
||||
* Autor: GitHub Copilot
|
||||
* Última actualización: 2026-02-07
|
||||
*/
|
||||
11
backend/src/plugins/prisma.ts
Normal file
11
backend/src/plugins/prisma.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
export default prisma;
|
||||
|
||||
/**
|
||||
* Metadatos:
|
||||
* Autor: GitHub Copilot
|
||||
* Última actualización: 2026-02-07
|
||||
*/
|
||||
11
backend/src/routes/health.ts
Normal file
11
backend/src/routes/health.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { FastifyInstance } from 'fastify';
|
||||
|
||||
export default async function healthRoutes(app: FastifyInstance) {
|
||||
app.get('/health', async () => ({ status: 'ok' }));
|
||||
}
|
||||
|
||||
/**
|
||||
* Metadatos:
|
||||
* Autor: GitHub Copilot
|
||||
* Última actualización: 2026-02-07
|
||||
*/
|
||||
Reference in New Issue
Block a user