国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

hapi框架搭建記錄(二):路由改造和生成接口文檔

opengps / 1149人閱讀

摘要:框架,用官網(wǎng)的簡介來說就是是構(gòu)建應(yīng)用程序和服務(wù)的豐富框架,它使開發(fā)人員能夠?qū)W⒂诰帉懣芍赜玫膽?yīng)用程序邏輯,而不是花時間構(gòu)建基礎(chǔ)設(shè)施。用自己的話簡單來說,就是個類似,之類的服務(wù)基礎(chǔ)框架。

hapi框架,用官網(wǎng)的簡介來說就是:Hapi是構(gòu)建應(yīng)用程序和服務(wù)的豐富框架,它使開發(fā)人員能夠?qū)W⒂诰帉懣芍赜玫膽?yīng)用程序邏輯,而不是花時間構(gòu)建基礎(chǔ)設(shè)施。

用自己的話簡單來說,就是個類似express,koa之類的node服務(wù)基礎(chǔ)框架。

此篇博客是在閱讀過掘金小冊的《基于 hapi 的 Node.js 小程序后端開發(fā)實(shí)踐指南》并實(shí)踐操作后,以此記錄實(shí)踐過程和踩過的坑。感興趣讀者可支持閱讀掘金小冊原版的內(nèi)容。

路由匯總
1. 在./routes目錄下新建index.js
作為路由的匯總,這樣以后只管在./routes下新建文件即可
"use strict";

const fs = require("fs");
const path = require("path");
const basename = path.basename(__filename); // 當(dāng)前文件名
let routeArr = [];

// 同步讀取當(dāng)前目錄,并過濾除了當(dāng)前文件的文件名數(shù)組
fs.readdirSync(__dirname)
  .filter(file => {
    // 過濾掉隱藏文件、當(dāng)前文件、非js文件, 返回當(dāng)前目錄下文件名稱數(shù)組
    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" };

      // 響應(yīng)數(shù)據(jù)方式:
      // return h.response(data).code(200);
      return data;
    }
  },
]
2.修改app.js

3.瀏覽測試結(jié)果

接口文檔Swagger
1.了解swagger
這個hapi插件是筆者認(rèn)為強(qiáng)大好用的工具,可以根據(jù)路由給的config配置,自己生成對應(yīng)的接口文檔、測試接口數(shù)據(jù) 以及 配合Joi插件來校驗(yàn)數(shù)據(jù)
2.安裝swagger相關(guān)依賴
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: "接口文檔", // 文檔的標(biāo)題
        version: package.version // 文檔的版本
      },
      // 定義接口以tags屬性為分類【定義分類的大標(biāo)題】,給./routes路由的配置config:tags使用
      grouping: "tags",
      // 標(biāo)簽,用于對應(yīng)路由config定義的tags進(jìn)行歸類
      tags: [
        { name: "test", description: "測試相關(guān)" }
      ],
      lang: "zh-cn" // 文檔語言
    }
  }
];
4.app.js入口文件配置swagger插件

5.訪問接口文檔
訪問地址:http://localhost:3000/documentation

6.路由配置生產(chǎn)測試接口
修改測試路由文件 ./routes/test.js

再次訪問文檔地址

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/103939.html

相關(guān)文章

  • Vue現(xiàn)有項(xiàng)目改造為Nuxt項(xiàng)目

    摘要:好了,項(xiàng)目啟動了,目錄結(jié)構(gòu)也清楚了,接下來就是整個現(xiàn)有項(xiàng)目的遷移了目前正在改造項(xiàng)目,文章尚未寫完,會抽時間不定期的繼續(xù)更新項(xiàng)目的改造過程及分享改造過程中遇到的問題 公司項(xiàng)目,最初只為了實(shí)現(xiàn)前后端分離式開發(fā),直接選擇了vue框架進(jìn)行開發(fā),然而現(xiàn)在項(xiàng)目基本完成了,發(fā)現(xiàn)蜘蛛根本就抓取不到網(wǎng)站數(shù)據(jù),搜索引擎搜出來,都是一片空白沒有數(shù)據(jù),需要對項(xiàng)目做SEO優(yōu)化。 本人第一次接觸SEO的優(yōu)化,完全...

    Invoker 評論0 收藏0
  • hapi框架搭建記錄(一):初始化項(xiàng)目

    摘要:框架,用官網(wǎng)的簡介來說就是是構(gòu)建應(yīng)用程序和服務(wù)的豐富框架,它使開發(fā)人員能夠?qū)W⒂诰帉懣芍赜玫膽?yīng)用程序邏輯,而不是花時間構(gòu)建基礎(chǔ)設(shè)施。用自己的話簡單來說,就是個類似,之類的服務(wù)基礎(chǔ)框架。同時全局環(huán)境直接獲取。 showImg(https://segmentfault.com/img/bVbrV3m?w=572&h=350); hapi框架,用官網(wǎng)的簡介來說就是:Hapi是構(gòu)建應(yīng)用程序和...

    aristark 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<