54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
// server.js
|
|
const express = require('express');
|
|
const app = express();
|
|
const port = 3000;
|
|
|
|
// Middleware pour gérer les requêtes JSON
|
|
app.use(express.json());
|
|
|
|
// Importer les routes
|
|
const apiRoutes = require('./routes/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/',
|
|
},
|
|
],
|
|
},
|
|
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(`Serveur démarré sur http://localhost:${port}`);
|
|
console.log(`Swagger documentation disponible sur http://localhost:${port}/api-docs`);
|
|
});
|