Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
info: {
title: 'Ride My Way',
version: '1.0.0',
description: 'API documentation for ridemyway, Curtesy of ALC, ForloopTanzania',
contact: {
name: 'Lupyana Mbembati',
email: 'lupyanambembati@gmail.com',
},
},
basePath: '/api-docs',
},
// List of files to be processes. You can also set globs './routes/*.js'
apis: ['./src/router/*.js'],
};
const swaggerSpec = swaggerJsdoc(options);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.resolve(`${__dirname}/../../frontend/build`)));
app.get('/', (req, res) => res.sendFile(path.resolve(`${__dirname}/../../frontend/build/index.html`)));
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
app.use('/api/v1', authRoutes);
app.use('/api/v1', router);
if (process.env.NODE_ENV !== 'test') {
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
}
export default app;
info: {
title: 'RESTful web services for node/express/es6 starter',
version: '1.0.0',
description: 'Documentation for node/express/es6 starter',
},
host: 'localhost:3001',
basePath: '/v1/',
schemes: ['http'],
consumes: ["application/json"],
produces: ["application/json"]
};
let options = {
swaggerDefinition: swaggerDefinition,
apis: ['dist/api/**/*.js']
};
let swaggerSpec = swaggerJSDoc(options);
console.log("Registering dependencies...");
container.register({
// Register libraries
q: awilix.asValue(q),
express: awilix.asValue(express),
underscore: awilix.asValue(underscore),
router: awilix.asClass(router).singleton(),
config: awilix.asValue(config),
exceptionFactory: awilix.asClass(ExceptionFactory).singleton(),
constants: awilix.asValue(constants),
swaggerSpec: awilix.asValue(swaggerSpec),
mongoose: awilix.asValue(mongoose),
helpersUtil: awilix.asValue(HelpersUtil),
// Register middleware
const swaggerOptions = {
// import swaggerDefinitions
swaggerDefinition: swaggerDefinition,
// path to the API docs
apis: [
path.join(__dirname, '/../routes.js'),
path.join(__dirname, '/../docs/*.js'),
path.join(__dirname, '/../docs/*.yml'),
path.join(__dirname, '/../docs/*.yaml')
]
};
/**
* Initialize swagger-jsdoc.
*/
const swaggerSpec = swaggerJSDoc(swaggerOptions);
export default swaggerSpec;
import swaggerUi from 'swagger-ui-express'
import swaggerJSDoc from 'swagger-jsdoc'
const options = {
definition: {
openapi: '3.0.0',
info: {
title: 'ExpressTS Api Starter',
version: '0.1.0',
description: 'Starter kit for an ExpressJS API in TypeScript with Paseto authentication'
},
},
// Path to the API docs
apis: ['src/api/controllers/*.ts', 'src/routes.ts'],
}
const swaggerSpec = swaggerJSDoc(options)
export default function (app): void {
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(null, {swaggerUrl: '/swagger.json'}))
app.get('/swagger.json', (req, res): void => {
res.setHeader('Content-Type', 'application/json')
res.send(swaggerSpec)
})
}
flow: 'implicit',
authorizationUrl: `http://${config.server.ip}:${config.server.port}/auth/github`,
// tokenUrl: `http://${config.server.ip}:${config.server.port}/#/token`,
description: 'Example oAuth by Github, copy paste token generate in Api key authorization'
}
}
},
consumes: ['application/json'],
produces: ['application/json'],
apis: [
`${config.base}/auth/**/*.yaml`,
`${config.base}/api/**/*.yaml`
]
};
return swaggerJSDoc(options);
// If you want use Swagger into .js = ${config.base}/**/*.js
/**
* @swagger
* definitions:
* Example:
* properties:
* field1:
* type: string
* field2:
* type: string
*/
/**
* @swagger
* /api/example:
flow: 'implicit',
authorizationUrl: `http://${config.server.ip}:${config.server.port}/auth/github`,
// tokenUrl: `http://${config.server.ip}:${config.server.port}/#/token`,
description: 'Copy the generated token value in the url, and paste it into "Api key authorization"'
}
}
},
consumes: ['application/json'],
produces: ['application/json'],
apis: [
`${config.base}/auth/**/*.yaml`,
`${config.base}/api/**/*.yaml`
]
};
return swaggerJSDoc(options);
// If you want use Swagger into .js = ${config.base}/**/*.js
/**
* @swagger
* definitions:
* Example:
* properties:
* field1:
* type: string
* field2:
* type: string
*/
/**
* @swagger
* /api/example:
// }
}
},
consumes: ['application/json'],
produces: ['application/json'],
// path to the API docs
// apis: [`${config.base}/api/${version}/**/*.yaml`,
// `${config.base}/lib/**/*.yaml`
// ]
apis: [
`${config.base}/auth/**/*.yaml`,
`${config.base}/api/swagger/**/*.yaml`
]
};
let swaggerSpec = swaggerJSDoc(options);
if (config.swagger.enabled)
app.get(`/swagger.json`, (req, res) => res.json(swaggerSpec));
return swaggerSpec;
// If you want use Swagger into .js = ${config.base}/**/*.js
/**
* @swagger
* definitions:
* Example:
* properties:
* field1:
* type: string
title: 'BookBrainz API Documentation',
version: '0.1.0'
},
schemes: [isDev ? 'http' : 'https']
}
};
const swaggerUIOptions = {
swaggerOptions: {
deepLinking: true,
defaultModelExpandDepth: 3,
defaultModelsExpandDepth: 3,
operationsSorter: 'alpha'
}
};
const swaggerSpec = swaggerJSDoc(swaggerOptions);
router.get('/json', (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.send(swaggerSpec);
});
router.use('/', swaggerUi.serve, swaggerUi.setup(swaggerSpec, swaggerUIOptions));
export default router;
],
definitions: {
Error: {
properties: {
error: { type: 'string' }
}
}
}
};
const options = {
swaggerDefinition,
apis: [`${__dirname}/../**/*.js`]
};
const swaggerSpec = swaggerJSDoc(options);
app.get('/api/swagger.json', (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.send(swaggerSpec);
});
app.use('/api', express.static(path.resolve(__dirname, '../../../public/swaggerUI')));
};
securityDefinitions: {
bearerAuth: {
type: 'apiKey',
name: 'Authorization',
scheme: 'bearer',
in: 'header',
},
},
};
const options = {
swaggerDefinition,
apis: ['./routes/*.js'],
};
const swaggerSpec = swaggerJSDoc(options);
app.get('/swagger.json', (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.send(swaggerSpec);
});
require('./config/passport');
const whitelist = [
'http://localhost:3031',
'http://localhost:3000',
'http://localhost:3003',
];
const corsOptions = {
origin: (origin, callback) => {
if (whitelist.indexOf(origin) !== -1) {