// server.js const express = require('express'); const cors = require('cors'); const sharp = require('sharp'); const app = express(); const port = 3000; // Middleware pour gérer les requêtes JSON app.use(express.json()); // Cors accès à tout app.use(cors({ origin: ['http://127.0.0.1:5500', 'http://localhost:5500', 'http://localhost:3000'], methods: ['GET', 'POST', 'PUT', 'DELETE'], allowedHeaders: ['Content-Type'], credentials: true, })); // Importer les routes const apiRoutes = require('./api'); app.use('/api', apiRoutes); // Swagger dependencies const swaggerUi = require('swagger-ui-express'); const swaggerJsdoc = require('swagger-jsdoc'); // Configuration de Swagger const swaggerOptions = { definition: { openapi: '3.0.0', info: { title: 'API Documentation', version: '1.0.0', description: 'Documentation de l\'API avec Swagger', }, servers: [ { url: 'https://timelapse.kerboul.me/api', }, { url: 'http://localhost:3000/api', } ], }, apis: ['./routes/*.js'], // Prend en compte tous les fichiers de routes pour générer la documentation }; // Initialisation de swagger-jsdoc const swaggerDocs = swaggerJsdoc(swaggerOptions); // Route Swagger UI app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs)); // Route de base pour tester le serveur app.get('/', (req, res) => { res.setHeader('Access-Control-Allow-Origin', 'http://localhost:5500'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); res.send('Bienvenue sur mon API Node.js!'); }); // Démarrer le serveur app.listen(port, () => { console.log(`[SERVER] Serveur démarré sur http://localhost:${port}`); console.log(`[SERVER] Swagger documentation disponible sur http://localhost:${port}/api-docs`); });