I'm trying to add Swagger to my apis in my Node.js project. I have the following project structure:
▼ src
▼ app
▼ api
▼ routes
GroupsRoutes.js
main.js
My main.js file is inside the src folder on the same level as the app folder.
The GroupsRoutes.js file looks like this:
const express = require('express');
const { default: mongoose } = require('mongoose');
const router = express.Router();
const Groups = require('../../models/group');
const Devices = require('../../models/device');
const Applications = require('../../models/application');
/**
* @swagger
* /api/organizations/:orgId/groups:
* get:
* description: Get all groups
* responses:
* 200:
* description: Success
*/
router.get('/organizations/:orgId/groups', async (req, res) => {
try {
const orgId = req.params.orgId;
let groups;
groups = await Groups.find({ orgId: orgId });
return res.status(200).json(groups);
} catch (err) {
return res.status(500).json({ message: err.message });
}
});
module.exports = router;
Then I have the main.js file that looks like this:
import * as express from 'express';
const swaggerJsDoc = require('swagger-jsdoc');
const swaggerUI = require('swagger-ui-express');
const app = express();
const mongoose = require('mongoose');
...
app.use(express.json());
const groupsRouter = require('./app/api/routes/GroupsRoutes');
app.use('/api', groupsRouter);
const swaggerOptions = {
swaggerDefinition: {
info:
title: 'Groups Service',
version: '1.0.0'
}
},
apis: ['app/api/routes/GroupsRoutes.js'],
};
const swaggerDocs = swaggerJsDoc(swaggerOptions);
console.log(swaggerDocs);
app.use('/api-docs', swaggerUI.serve, swaggerUI.setup(swaggerDocs));
So basically my endpoints in GroupsRoutes.js works perfectly, but for some reason the swagger is just empty saying 'No operations defined in spec!'. The console log in the main.js logs prints out the following:
{
info: { title: 'Groups Service', version: '1.0.0' },
swagger: '2.0',
paths: {},
definitions: {},
responses: {},
parameters: {},
securityDefinitions: {},
tags: []
}
Why is my get endpoint not added to swagger?
Via Active questions tagged javascript - Stack Overflow https://ift.tt/DpwSUNz
Comments
Post a Comment