T01: add backend src/server.ts
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user