From 736fefbdc9323412d37309d95de842a6d86f2e17 Mon Sep 17 00:00:00 2001 From: Tuan-Dat Tran Date: Fri, 20 Feb 2026 17:17:54 +0100 Subject: [PATCH] feat(api): add swagger docs route --- backend/routes/docs.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 backend/routes/docs.js diff --git a/backend/routes/docs.js b/backend/routes/docs.js new file mode 100644 index 0000000..92b6c21 --- /dev/null +++ b/backend/routes/docs.js @@ -0,0 +1,42 @@ +import { Router } from 'express'; +import swaggerJsdoc from 'swagger-jsdoc'; +import swaggerUi from 'swagger-ui-express'; + +const router = Router(); + +const options = { + definition: { + openapi: '3.0.0', + info: { + title: 'CV API', + version: '1.0.0', + description: 'API for CV/Resume management', + }, + servers: [ + { url: '/api', description: 'API server' } + ], + components: { + securitySchemes: { + bearerAuth: { + type: 'http', + scheme: 'bearer', + }, + }, + }, + }, + apis: ['./routes/*.js'], +}; + +const specs = swaggerJsdoc(options); + +router.use('/docs', swaggerUi.serve, swaggerUi.setup(specs, { + customCss: '.swagger-ui .topbar { display: none }', + customSiteTitle: 'CV API Documentation' +})); + +router.get('/docs.json', (req, res) => { + res.setHeader('Content-Type', 'application/json'); + res.send(specs); +}); + +export default router;