简介
hapi-arc 是一款基于 hapi.js 的轻量级框架,可快速构建 RESTful API 接口。它使用 Arc 架构模式,将业务逻辑与控制器分离,可以大大提高代码的可维护性和可扩展性。此外,它还内置了常用的插件和中间件,如 Swagger 和 CORS,可以方便地进行 API 文档生成和跨域资源共享等操作。
安装
使用 npm 可以方便地安装 hapi-arc:
npm install hapi-arc --save
快速上手
在你的项目中引入 hapi-arc 而不是 hapi.js:
const Hapi = require('hapi-arc'); const server = new Hapi.Server();
接着,添加路由和控制器:
-- -------------------- ---- ------- -------------- ------- ------ ----- ---- -------- --------- -- -- - ------ ------- -------- - --- ------------------------------ - ------ --------- -- -- - ------ ------- -------- - ---
在控制器中,你可以访问请求参数、头信息和 payload 数据等:
-- -------------------- ---- ------- ------------------------------ - ---- --------- -- -- - ----- ------ - ---------------------- ----- -------- - -------------------- -- ---------------- ------ --------- -- ----- --------- -- -- - ----- -------- - ---------------- ----- ------ - ------------------------ -- ---------------- ------ - ------ -- -- ---- --------- -- -- - ----- ------ - ---------------------- ----- --------------- - ---------------- ---------------------- ----------------- -- ---------------- ------ ----- -- ----- -- ------- --------- -- -- - ----- ------ - ---------------------- ----------------------- -- ---------------- ------ ----- - ---
你还可以使用插件和中间件来扩展 hapi-arc 的功能:
-- -------------------- ---- ------- ----- ------------- - ------------------------ ----------------- - ------- -------------- -------- - - - --- -------------------------- --------- -- -- - ------------------------ ---- ------------- ------ ----------- ---
高级功能
hapi-arc 内置了许多高级功能,包括:
Arc 架构模式
Arc 架构模式将业务逻辑和控制器分离,可以使代码更加易读、易于维护和测试。控制器只负责解析和验证请求,不包含任何业务逻辑。而业务逻辑则被独立抽离到 service 层和 model 层中,以实现代码的高内聚、低耦合。
Swagger
hapi-arc 使用 hapi-swagger 插件集成了 Swagger UI,可以方便地生成 API 文档。只需在控制器中添加相关的注释即可:
-- -------------------- ---- ------- ------------------------------ - --- - -------- - ---------------- - ---- - ------------ --- ---- -- -- - ----- - - ----- - ----------- - - ----- ------ - --- ---- - --------- ---- - ------------ -- -- --- ---- -- --- - ------- - ----- ------- - ---------- - ------ - ------------ ------- - ------ ---- - ------- - ----- ------ - ----------- - --- - ----- ------- - ----- - ----- ------ - ------ - ------------ ---- --- ----- -- ---- --------- -- -- - ----- ------ - ---------------------- ----- -------- - -------------------- -- ----------- - ------ ----------------------- - ------ --------- - ---
CORS
hapi-arc 使用 hapi-cors 插件实现了 CORS 支持,可以方便地进行跨域资源共享操作。只需在启动服务器时添加相关配置即可:
const corsOptions = { origin: ['http://example.com'], methods: ['POST', 'PUT', 'DELETE'] }; server.start({ cors: corsOptions });
JWT 身份验证
hapi-arc 使用 hapi-auth-jwt2 插件实现了 JWT 身份验证,可以方便地对 API 请求进行权限验证。只需在路由中添加 authentication 属性即可:
-- -------------------- ---- ------- -------------- ------- ------ ----- --------- ------- - ----- ------ -------- --------- -- -- - ----- ----- - ----------- ------ ------ - - ---
数据库集成
hapi-arc 并没有对数据库进行集成,但是它可以方便地与各种类型的数据库进行集成。只需编写相应的 model 层代码即可:
-- -------------------- ---- ------- ----- -- - ---------------- ----- --------- - ------ ----- --------------- - ----- --- - ------- - ---- ----- ----- -- - --- ----- ------ - ----- --------------- ---------- ------ ---------- - ------ ----- ---------------- - ----- --- - ------- ---- ----- --- --- ----- ------ - ----- --------------- ------------ ------ ---------------- - ------ ----- -------------- ---------------- - ----- --- - ------- ----- --- - ----- -- - --- ----- --------------- ----------------- --------- - ------ ----- -------------- - ----- --- - ------- ---- ----- ----- -- - --- ----- --------------- ---------- - - -------------- - ----------
然后在控制器中使用它:
-- -------------------- ---- ------- ----- --------- - -------------------------- ------------------------------ - ---- ----- --------- -- -- - ----- ------ - ---------------------- ----- -------- - ----- -------------------------- -- ----------- - ------ ----------------------- - ------ --------- -- ----- ----- --------- -- -- - ----- -------- - ---------------- ----- ------ - ----- --------------------------- ------ - ------ -- - ---
总结
hapi-arc 是一款强大、易用的 RESTful API 框架,它使用 Arc 架构模式、内置常用的插件和中间件,可以快速构建高可维护、高可扩展的 API 接口。在实现 API 接口时,我们应该尽可能地使用 hapi-arc 并配合其它实用的工具和技术,以提高我们的工作效率和质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005674081e8991b448e3c4a