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

資訊專欄INFORMATION COLUMN

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

opengps / 1155人閱讀

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

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

用自己的話簡(jiǎn)單來(lái)說(shuō),就是個(gè)類似express,koa之類的node服務(wù)基礎(chǔ)框架。

此篇博客是在閱讀過(guò)掘金小冊(cè)的《基于 hapi 的 Node.js 小程序后端開(kāi)發(fā)實(shí)踐指南》并實(shí)踐操作后,以此記錄實(shí)踐過(guò)程和踩過(guò)的坑。感興趣讀者可支持閱讀掘金小冊(cè)原版的內(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)前目錄,并過(guò)濾除了當(dāng)前文件的文件名數(shù)組
fs.readdirSync(__dirname)
  .filter(file => {
    // 過(guò)濾掉隱藏文件、當(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;
測(cè)試路由
1.新建test.js文件作為測(cè)試
const GROUP_NAME = "test";

module.exports = [
    // 純測(cè)試返回 接口
  {
    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.瀏覽測(cè)試結(jié)果

接口文檔Swagger
1.了解swagger
這個(gè)hapi插件是筆者認(rèn)為強(qiáng)大好用的工具,可以根據(jù)路由給的config配置,自己生成對(duì)應(yīng)的接口文檔、測(cè)試接口數(shù)據(jù) 以及 配合Joi插件來(lái)校驗(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)簽,用于對(duì)應(yīng)路由config定義的tags進(jìn)行歸類
      tags: [
        { name: "test", description: "測(cè)試相關(guān)" }
      ],
      lang: "zh-cn" // 文檔語(yǔ)言
    }
  }
];
4.app.js入口文件配置swagger插件

5.訪問(wèn)接口文檔
訪問(wèn)地址:http://localhost:3000/documentation

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

再次訪問(wèn)文檔地址

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

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

相關(guān)文章

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

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

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

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

    aristark 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<