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;