Files
web-cad/backend/src/server.ts
T

53 lines
1.0 KiB
TypeScript
Raw Normal View History

2026-06-21 20:32:34 +00:00
import fastify from 'fastify';
import cors from '@fastify/cors';
import rateLimit from '@fastify/rate-limit';
import swagger from '@fastify/swagger';
import swaggerUi from '@fastify/swagger-ui';
const app = fastify({ logger: true });
// Register plugins
await app.register(cors, {
origin: 'https://cad.media-on.de'
});
await app.register(rateLimit, {
max: 100,
timeWindow: '1 minute'
});
await app.register(swagger, {
openapi: {
info: {
title: 'web-cad API',
description: 'API for web-cad - Web-based 2D CAD for Event Seating Plans',
version: '0.0.1'
},
servers: [{
url: 'https://cad.media-on.de'
}]
}
});
await app.register(swaggerUi, {
routePrefix: '/docs',
uiConfig: {
deepLinking: false
},
staticCSP: true,
transformSpecification: (swaggerObject) => {
return swaggerObject;
}
});
// Define a route
app.get('/', async () => {
return { message: 'Welcome to web-cad API' };
});
// Define a health check route
app.get('/health', async () => {
return { status: 'OK' };
});
export default app;