hapi mysql项目实战路由初始化_hapi框架搭建记录(二):路由改造和生成接口文档...

496e60007a60306b4b71a651152c4279.png

hapi框架,用官网的简介来说就是:Hapi是构建应用程序和服务的丰富框架,它使开发人员能够专注于编写可重用的应用程序逻辑,而不是花时间构建基础设施。

用自己的话简单来说,就是个类似express,koa之类的node服务基础框架。

此篇博客是在阅读过掘金小册的《基于 hapi 的 Node.js 小程序后端开发实践指南》并实践操作后,以此记录实践过程和踩过的坑。感兴趣读者可支持阅读掘金小册原版的内容。

路由汇总

1. 在./routes目录下新建index.js

作为路由的汇总,这样以后只管在./routes下新建文件即可

"use strict";

const fs = require("fs");

const path = require("path");

const basename = path.basename(__filename); // 当前文件名

let routeArr = [];

// 同步读取当前目录,并过滤除了当前文件的文件名数组

fs.readdirSync(__dirname)

.filter(file => {

// 过滤掉隐藏文件、当前文件、非js文件, 返回当前目录下文件名称数组

return (

file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"

);

})

.forEach(file => {

// 引入路由模块

let arr = require(path.join(__dirname, file));

// 汇总

routeArr.push(...arr);

});

module.exports = routeArr;

测试路由

1.新建test.js文件作为测试

const GROUP_NAME = "test";

module.exports = [

// 纯测试返回 接口

{

method: "GET",

path: `/${GROUP_NAME}`,

handler: (request, h) => {

const data = { message: "test" };

// 响应数据方式:

// return h.response(data).code(200);

return data;

}

},

]

2.修改app.js

cfc2af025ee804fc55c92477f8c41671.png

3.浏览测试结果

5a33c4dc4c66a06663e4446dff6f44f0.png

接口文档Swagger

这个hapi插件是笔者认为强大好用的工具,可以根据路由给的config配置,自己生成对应的接口文档、测试接口数据 以及 配合Joi插件来校验数据

2.安装swagger相关依赖

npm i hapi-swagger inert vision package

3.编写配置插件

在./plugins 目录下新建hapi-swagger.js

const hapiSwagger = require("hapi-swagger");

const inert = require("inert");

const vision = require("vision");

const package = require("package");

module.exports = [

inert,

vision,

{

plugin: hapiSwagger,

options: {

info: {

title: "接口文档", // 文档的标题

version: package.version // 文档的版本

},

// 定义接口以tags属性为分类【定义分类的大标题】,给./routes路由的配置config:tags使用

grouping: "tags",

// 标签,用于对应路由config定义的tags进行归类

tags: [

{ name: "test", description: "测试相关" }

],

lang: 'zh-cn' // 文档语言

}

}

];

4.app.js入口文件配置swagger插件

25a3f50c256ded738d97d4cb2ca264a3.png

5.访问接口文档

访问地址:http://localhost:3000/documentation

9f4e589085306e564cd07d56664c2900.png

6.路由配置生产测试接口

修改测试路由文件 ./routes/test.js

f2d647aec663854b49583073537f56d1.png

再次访问文档地址

55b06c381fbc5f6bb90d38db02bc8595.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值