在hapijs中禁用生产服务器中的swagger API文档,可以通过以下步骤实现:
npm install hapi-swagger
const Hapi = require('@hapi/hapi');
const Inert = require('@hapi/inert');
const Vision = require('@hapi/vision');
const HapiSwagger = require('hapi-swagger');
const server = Hapi.server({
port: 3000,
host: 'localhost'
});
const init = async () => {
await server.register([
Inert,
Vision,
{
plugin: HapiSwagger,
options: {
info: {
title: 'API Documentation',
version: '1.0.0'
},
// 其他配置参数
}
}
]);
// 其他路由和插件注册
await server.start();
console.log('Server running on %s', server.info.uri);
};
init().catch(err => {
console.error(err);
process.exit(1);
});
const init = async () => {
await server.register([
Inert,
Vision,
{
plugin: HapiSwagger,
options: {
info: {
title: 'API Documentation',
version: '1.0.0'
},
// 其他配置参数
}
}
]);
// 其他路由和插件注册
// 判断当前环境是否为生产环境
if (process.env.NODE_ENV === 'production') {
// 在生产环境中禁用swagger API文档
server.plugins['hapi-swagger'].routePath = '/no-docs';
}
await server.start();
console.log('Server running on %s', server.info.uri);
};
在上述代码中,通过判断process.env.NODE_ENV
的值是否为'production'来确定当前环境是否为生产环境。如果是生产环境,则将swagger API文档的路由路径设置为'/no-docs',从而禁用swagger API文档的访问。
领取专属 10元无门槛券
手把手带您无忧上云