Instale los módulos swagger-autogen y swagger-ui-express
npm install swagger-autogen swagger-ui-express
En la raíz del proyecto, cree el archivo swagger.js. En la variable endpointsFiles coloque las rutas a los controladores de los modelos.
const swaggerAutogen = require('swagger-autogen')()
const outputFile = './swagger_output.json'
const endpointsFiles = ['./routes/<ROUTER>.js']
swaggerAutogen(outputFile, endpointsFiles)
Modifique el archivo package.json y agregue la entrada swagger-autogen.
...
"scripts": {
...
"swagger-autogen": "node swagger.js"
...
},
...
Desde la línea de comandos, ejecute el comando:
npm run swagger-autogen
En el archivo swagger_ouput.json, modifique las URLs de cada endpoint (clave paths) de acuerdo con las rutas en la aplicación:
...
"paths": {
"/suppliers/findAll": {
...
},
"/suppliers/findById/{id}": {
...
}
...
"/suppliers/delete/{id}": {
}
}
...
Modifique el archivo generado app.js con la referencia al módulo swagger-ui-express y al archivo generado swagger_output.json. Además, agregue la ruta a la documentación.
...
/* REFERENCIA AL MÓDULO */
const swaggerUi = require('swagger-ui-express')
/* REFERENCIA AL ARCHIVO GENERADO */
const swaggerFile = require('./swagger_output.json')
...
const app = express();
...
/* CONFIGURACIÓN DE LA RUTA A LA DOCUMENTACIÓN */
app.use('/documentation', swaggerUi.serve, swaggerUi.setup(swaggerFile))
...
Ejecute el servidor, con:
npm start
Compruebe los endpoints del manejador de ruta, con:
http://localhost:3000/documentation
Versiona local y remotamente el repositorio rest_api.
🚀 Made significant progress today on our Project Management System! Integrated centralized Swagger documentation for clear API understanding. Also, added endpoints for projects and tasks. Excited to see it coming together! 💻🔨 #MERNStack #ProjectManagement #SwaggerUI pic.twitter.com/ZP3iin9RMa
— Aditya Rawas (@rawas_aditya) October 5, 2023
swagger, documentación