Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'swagger-ui-express' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
module.exports = (app) => {
// 开放 swagger 相关接口,
app.get('/swagger.json', function(req, res) {
res.setHeader('Content-Type', 'application/json')
res.send(swaggerSpec)
}),
app.use(swaggerConfig.routerPath, swaggerUi.serve, swaggerUi.setup(swaggerSpec))
}
res.setHeader('Content-Type', 'application/json');
res.send(swagger.EBGSAPIv2);
});
app.use('/api/ebgs/v3/api-docs.json', (req, res, next) => {
res.setHeader('Content-Type', 'application/json');
res.send(swagger.EBGSAPIv3);
});
app.use('/api/ebgs/v4/api-docs.json', (req, res, next) => {
res.setHeader('Content-Type', 'application/json');
res.send(swagger.EBGSAPIv4);
});
app.use('/api/ebgs/v1/docs', swaggerUi.serve, swaggerUi.setup(swagger.EBGSAPIv1));
app.use('/api/ebgs/v2/docs', swaggerUi.serve, swaggerUi.setup(swagger.EBGSAPIv2));
app.use('/api/ebgs/v3/docs', swaggerUi.serve, swaggerUi.setup(swagger.EBGSAPIv3));
app.use('/api/ebgs/v4/docs', swaggerUi.serve, swaggerUi.setup(swagger.EBGSAPIv4));
app.use('/api/ebgs/v4/factions', ebgsFactionsV4);
app.use('/api/ebgs/v4/systems', ebgsSystemsV4);
app.use('/api/ebgs/v4/stations', ebgsStationsV4);
app.use('/api/ebgs/v4/ticks', tickTimesV4);
app.use('/auth/check', authCheck);
app.use('/auth/discord', authDiscord);
app.use('/auth/logout', authLogout);
app.use('/auth/user', authUser);
app.use('/frontend', frontEnd);
app.use('/chartgenerator', chartGenerator);
// Pass all 404 errors called by browser to angular
/* /ftp directory browsing and file download */
app.use('/ftp', serveIndex('ftp', { icons: true }))
app.use('/ftp/:file', fileServer())
/* /encryptionkeys directory browsing */
app.use('/encryptionkeys', serveIndex('encryptionkeys', { icons: true, view: 'details' }))
app.use('/encryptionkeys/:file', keyServer())
/* /logs directory browsing */
app.use('/support/logs', serveIndex('logs', { icons: true, view: 'details' }))
app.use('/support/logs', verify.accessControlChallenges())
app.use('/support/logs/:file', logFileServer())
/* Swagger documentation for B2B v2 endpoints */
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument))
app.use(express.static(path.join(__dirname, '/frontend/dist/frontend')))
app.use(cookieParser('kekse'))
/* Configure and enable backend-side i18n */
i18n.configure({
locales: locales.map(locale => locale.key),
directory: path.join(__dirname, '/i18n'),
cookie: 'language',
defaultLocale: 'en',
autoReload: true
})
app.use(i18n.init)
app.use(bodyParser.urlencoded({ extended: true }))
/* File Upload */
/* istanbul ignore file */
const Router = require('express').Router;
const getSwaggerSpec = require('../services/swagger');
const swaggerUi = require('swagger-ui-express');
const routes = new Router();
routes.get('/api-docs.json', (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.send(getSwaggerSpec(req));
});
routes.use('/', swaggerUi.serve, (req, res, next) => {
const swaggerUiHandler = swaggerUi.setup(getSwaggerSpec(req));
swaggerUiHandler(req, res, next);
});
module.exports = routes;
// Enable reverse proxy support in Express. This causes the
// the "X-Forwarded-Proto" header field to be trusted so its
// value can be used to determine the protocol. See
// http://expressjs.com/api#app-settings for more details.
app.enable("trust proxy");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(
bodyParser.json({
type: () => true // Treat all other content types as application/json
})
);
if (process.env.NODE_ENV === "dev") {
app.use(
"/api-docs",
swaggerUi.serve,
swaggerUi.setup(swaggerSpec, { explorer: true })
);
}
app.use("/api", createApiRouter(context, true));
app.use(handleErrors);
return app;
}
middleware.validateRequest());
// Error handler to display the validation error as HTML
app.use(function (err, req, res, next) {
res.status(err.status);
res.send(
'<h1>' + err.status + ' Error</h1>' +
'<pre>' + err.message + '</pre>'
);
});
routes(app);
});
const swaggerDocument = YAML.load('./server/common/swagger/Api.yaml');
app.use('/swagger', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
}
// log
this.app.use(log4js.connectLogger(this.log.access, { level: 'info' }));
// read pkg
const pkg = require(path.join('..', '..', '..', 'package.json'));
// read api.yml
let api = yaml.safeLoad(fs.readFileSync(path.join(__dirname, '..', '..', '..', 'api.yml'), 'utf-8'));
api.info = {
version: pkg.version,
title: pkg.name,
}
// swagger ui
const swaggerUi = require('swagger-ui-express');
this.app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(api));
this.app.get('/api/debug', (_req, res) => res.redirect('/api-docs/?url=/api/docs'));
// init express-openapi
openapi.initialize({
app: this.app,
apiDoc: api,
paths: path.join(__dirname, 'api'),
consumesMiddleware: {
'application/json': bodyParser.json(),
'text/text': bodyParser.text()
},
errorMiddleware: (err, _req, res, _next) => {
res.status(400);
res.json(err);
},
errorTransformer: (openapi, _jsonschema) => {
const jwt = require('jsonwebtoken');
const basicAuth = require('express-basic-auth');
const swaggerUi = require('swagger-ui-express');
const swaggerJSDoc = require('swagger-jsdoc');
const invalidTokenHandler = require('../middleware/invalidTokenHandler');
const { privateKey, publicKey } = require('../lib/keys');
const { jwtConfig, basicAuthConfig, swaggerConfig } = require('../config/config');
const swaggerSpec = swaggerJSDoc(swaggerConfig);
const router = express.Router();
// Ensure user gets to api docs
router.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
router.get('/', (req, res) => {
res.redirect('/api-docs');
});
router.get('/healthCheck', (req, res) => {
res.sendStatus(200);
});
/**
* @swagger
* /login:
* get:
* summary: Login to the application via basic auth(use admin:admin)
* tags: [Login (Get JWT)]
* security:
private static serveSwagger(
document: O3TS.OpenAPIObject,
apiDocsPath: string,
logger: BunyanLike,
app: INestApplication,
httpAdapter: HttpServer,
) {
try {
// tslint:disable-next-line: no-require-imports
const swaggerUi = require('swagger-ui-express');
const html = swaggerUi.generateHTML(document, {});
app.use(apiDocsPath, swaggerUi.serveFiles(document, {}));
httpAdapter.get(apiDocsPath, (req, res) => res.contentType('html').send(html));
} catch (err) {
logger.warn({ err }, 'Error when loading `swagger-ui-express`. Make sure you have it in your package.json.');
}
}
favIcon = null;
}
let url = toStringSafe(opts.url);
if (isEmptyString(url)) {
url = null;
}
let title = toStringSafe(opts.title);
if (isEmptyString(title)) {
title = null;
}
const ROUTER = express.Router();
ROUTER.use('/', swaggerUi.serveFiles(SWAGGER_DOC));
ROUTER.get('/', swaggerUi.setup(
SWAGGER_DOC,
null, // opts
null, // options
css, // customCss
favIcon, // customfavIcon
url, // swaggerUrl
title, // customeSiteTitle
));
// download link (JSON)
ROUTER.get(`/json`, function (req, res) {
return res.status(200)
.header('content-type', 'application/json; charset=utf-8')
.header('content-disposition', `attachment; filename=api.json`)
.send(