使用node的Hapi框架搭建后台(二)——配置接口文档和入参校验

一、配置接口文档

Step 1:安装基础依赖和基础插件配置

使用 Swagger 插件配置接口文档,安装适配 hapi v16 的 swagger 插件

npm i hapi-swagger@7
npm i inert@4
npm i vision@4
npm i package

Step 2:存放插件

在根目录下创建 plugins 文件夹,用来存放插件,并新建 hapi-swagger.js :

const inert = require('inert');
const vision = require('vision');
const package = require('package');
const hapiSwagger = require('hapi-swagger');

module.exports = [
  inert,
  vision,
  {
    register: hapiSwagger,
    options: {
      info: {
        title: '接口文档',
        version: package.version,
      },
      // 定义接口以 tags 属性定义为分组
      grouping: 'tags',
      tags: [
        {name: 'tests', description: '测试相关'}
      ]
    }
  }
]

Step 3:创建路由并验证接口文档

在根目录下创建 routes 文件夹,并新建 hello.js 文件

module.exports = [
  {
    method: 'GET',
    path: '/',
    handler: (request, reply)=>{
      reply('hello');
    },
    config: {
      tags: ['api','tests'],
      description: '测试hello'
    }
  }
]

Step 2:挂载插件

在 app.js 中,我们通过 server.register 挂载 swagger 插件配置。

const Hapi = require('hapi');
require('env2')('./.env');
const config = require('./config');
const hello = require('./routes/hello');
const pluginHapiSwagger = require('./plugins/hapi-swagger');

const server = new Hapi.Server();
// 配置服务器启动的 host 和端口
server.connection({
  host: config.host,
  port: config.port
})
const init = async () => {
  await server.register([
    // 为系统使用 hapi-swagger
    ...pluginHapiSwagger,
  ]);
  server.route([
    ...hello,
  ])
  await server.start();
  console.log(`Server running at: ${server.info.uri}`);
}

init();

此时,执行 node app.js,然后访问 http://127.0.0.1:3000/documentation 就能看到接口文档了。

二、入参校验

Step 1:安装 Joi 依赖库

安装适配 hapi v16 的 joi依赖

npm i --save joi@13

你可能感兴趣的:(node.js,Hapi,记录)