|
@@ -5,6 +5,9 @@ const path = require('path');
|
|
|
const swig = require('swig-templates');
|
|
const swig = require('swig-templates');
|
|
|
const onHeaders = require('on-headers');
|
|
const onHeaders = require('on-headers');
|
|
|
|
|
|
|
|
|
|
+const swaggerJSDoc = require('swagger-jsdoc');
|
|
|
|
|
+const swaggerDefinition = require('@root/config/swagger-definition');
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class CrowiDev {
|
|
class CrowiDev {
|
|
|
|
|
|
|
@@ -85,9 +88,25 @@ class CrowiDev {
|
|
|
eazyLogger.unprefixed('info', ` APP: {magenta:${serverUrl}}`);
|
|
eazyLogger.unprefixed('info', ` APP: {magenta:${serverUrl}}`);
|
|
|
eazyLogger.unprefixed('info', '{grey:=======================================}');
|
|
eazyLogger.unprefixed('info', '{grey:=======================================}');
|
|
|
|
|
|
|
|
|
|
+ this.setupSwaggerJSdoc(app);
|
|
|
|
|
+
|
|
|
return server;
|
|
return server;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ setupSwaggerJSdoc(app) {
|
|
|
|
|
+ const options = {
|
|
|
|
|
+ swaggerDefinition,
|
|
|
|
|
+ apis: swaggerDefinition.apis,
|
|
|
|
|
+ };
|
|
|
|
|
+ const swaggerSpec = swaggerJSDoc(options);
|
|
|
|
|
+
|
|
|
|
|
+ app.get('/api-docs.json', (req, res) => {
|
|
|
|
|
+ res.setHeader('Content-Type', 'application/json');
|
|
|
|
|
+ res.send(swaggerSpec);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
*
|
|
*
|
|
|
* @param {any} app express
|
|
* @param {any} app express
|