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