手动搭建koa+ts项目框架(apidoc文档篇)

文章目录

  • 一、安装`apidoc`工具
  • 二、使用
    • 1、项目根目录新建`apidoc.json`
    • 2、定义接口路由上方注解对应信息
    • 3、配置静态文件访问目录
    • 4、生成api文档
    • `如有启发,可点赞收藏哟~`


一、安装apidoc工具

全局安装

npm i apidoc -g

查看是否安装成功

apidoc -v

在这里插入图片描述

二、使用

1、项目根目录新建apidoc.json

{
    "name": "Admin-Api",
    "version": "1.0.0",
    "description": "权限管理系统API文档",
    "title": "权限管理系统API文档",
    "url": "http://localhost:3000",
    "sampleUrl": "http://localhost:3000",
    "forceLanguage": "zh-cn",
    "template": {
        "withCompare": true,
        "withGenerator": true
    }
}
  • name: 项目名称
  • version: 项目的版本
  • description: 项目简介
  • title: 浏览器的标题文字
  • url: 在线文档地址
  • sampleUrl: 窗体来测试API方法(发送请求)
  • forceLanguage: 浏览器语言
  • template: 设置特定于apiDoc的默认模板
  • withCompare 布尔 启用与旧的API版本比较。默认:true
  • withGenerator 布尔 在输出页脚中产生的信息。默认:true
  • 更多

2、定义接口路由上方注解对应信息

详细可

/**
 * @api {method} path [title]
 * @apiDefine name [title] [description]
 * @apiDescription text
 * @apiError [(group)] [{type}] field [description]
 * @apiErrorExample [{type}] [title]
 * example
 * @apiExample [{type}] title
 * example
 * @apiGroup name
 * @apiHeader [(group)] [{type}] [field=defaultValue] [description]
 * @apiHeaderExample [{type}] [title]
 * example
 * @apiIgnore [hint]
 * @apiName name
 * @apiParam [(group)] [{type}] [field=defaultValue] [description]
 * @apiParamExample [{type}] [title]
 * example
 * @apiPermission name
 * @apiSampleRequest url
 * @apiSuccess [(group)] [{type}] field [description]
 * @apiSuccessExample [{type}] [title]
 * example
 * @apiUse name
 * @apiVersion version
 */
export const userInfo = () => {

}

3、配置静态文件访问目录

需安装koa-static
项目入口文件新增

// 配置在线接口文档,放在 public 中,访问 localhost:端口
app.use(require('koa-static')(__dirname + '/api-doc'))

4、生成api文档

在项目更目录执行,或者在package.json配置对应生成脚本

{
  "scripts": {
    ...
    "api-doc": "apidoc -i ./src/routes -o ./api-doc",
  }
}
  • -i 对应需要解析的目录
  • -o 输出目录

执行npm run api-doc生成目录
访问http://localhost:3000/查看生成的api文档


如有启发,可点赞收藏哟~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/347870.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

注解@profile的使用

目录 profile介绍配置演示 profile介绍 profile 通常作用在controller类上,当它标记的环境有效时,该controller类才生效,例如:Profile(“dev”),当dev环境被激活时,Profile(“dev”)所注解的controller类才生效。 配置…

工作软技能第一弹,关于职场沟通、成长的那些事

引言 在谈绩效后,我收获了一些心得,在此梳理出来,加深印象并且共勉 基本信息 在步入职场后,你可能跟我一样虽然技术水平有在上升,但是在处理一些事情上可能偶尔没能获得预期的成果。我在通过绩效沟通以及自我反思后…

【学网攻】 第(10)节 -- 路由器单臂路由配置

系列文章目录 目录 系列文章目录 文章目录 前言 一、单臂路由是什么? 二、实验 1.引入 实验拓扑图 PC配置 Sw配置 Router配置 实验验证 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交…

Vue+OpenLayers7入门到实战:在地图上添加缩放控件、比例尺控件和鼠标经纬度位置显示控件

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章主要介绍如何使用OpenLayers7在地图上添加地图缩放控件,比例尺显示控件和鼠标经纬度位置展示控件这三个Control控件。 二、依赖和使用 "ol": "7.5.2"使用npm安装依赖npm install ol@7.5.…

JVM实战(31)——内存溢出之请求超时

一、简介 本章,我们将通过实际案例讲解一个Web应用的内存溢出问题,该内存溢出问题的排查涉及Tomcat的一些底层原理,最终排查发现是由于请求超时问题导致,我们先来看下系统的背景。 1.1 系统背景 生产环境的一个系统发生告警&…

Linux/Doctor

Enumeration nmap 已知目标开放了22,80,8089端口,扫描详细情况如下 可以看到对外开放了22,80,8089三个端口 TCP/80 SSTI 访问80端口,有一个infodoctors.htb的电子邮件,点击其他的也没有什么反应,猜测有可能需要域名访问 在/et…

day32WEB 攻防-通用漏洞文件上传二次渲染.htaccess变异免杀

本章节知识点: 1 、文件上传 - 二次渲染 2 、文件上传 - 简单免杀变异 3 、文件上传 -.htaccess 妙用 4 、文件上传 -PHP 语言特性 前置知识: 后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码 ( 解析漏洞除外 ) 如&…

C++ day 1

思维导图 使用C编写一个程序&#xff0c;输入一个字符串&#xff0c;统计大小写字母、数字、空格和其他符号的个数 #include <iostream>using namespace std;int main() {int capital 0;int lower 0;int digit 0;int spaces 0;int others 0;cout << "请…

人工智能时代:让AIGC成为你的外部智慧源(文末送书)

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 什么是AIGC?二. AIGC如何运作&#xff1f;2.1 步骤一&#xff1a;收集数据2.…

web前端javascript笔记——(14)Navigator 、History、Location

Navigator <!DOCTYPE html><head><meta charset"UTF-8"><title></title><style></style><script type"text/javascript">/*DOM文档对象&#xff0c;通过js操作网页BOM 浏览器对象BOM可以使我们通过JS来操…

谷歌公布一个可以让 AI 进行自我判断输出内容正确性的模型训练框架 ASPIRE

谷歌开发了一款名为 ASPIRE 的训练框架&#xff0c;旨在增强人工智能&#xff08;AI&#xff09;模型的选择性预测能力。这款框架为模型引入了 “可信度” 机制&#xff0c;即模型会输出一系列答案&#xff0c;并为每个答案赋予一个正确概率评分。通过这种方式&#xff0c;ASPI…

day2 C++

封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <iostre…

mysql生成最近24小时整点最近30天最近12个月时间临时表

文章目录 生成最近24小时整点生成最近30天生成最近12个月 在统计的时候需要按时间来展示&#xff0c;但是数据的时间不一定是连续的&#xff0c;那就需要在代码里面生成连续的时间&#xff0c;然后按时间匹配到对应的数据&#xff0c;这样比较麻烦&#xff0c;可以在sql中使用连…

写点东西《检查和更新NPM包》

写点东西《检查和更新NPM包》 检查和更新 NPM 包 TL;DR&#xff1b; 用于检查和更新软件包的 NPM 命令# [](#npm-outdated)npm outdatednpm updatenpm update --save-dev --savenpm update -g npm-check-updates 检查和更新软件包的命令npm install -g npm-check-updatesnpx np…

蓝桥杯备赛 week 1 —— DP 背包问题

目录 &#x1f308;前言&#x1f308;&#xff1a; &#x1f4c1; 01背包问题 分析&#xff1a; dp数组求解&#xff1a; 优化&#xff1a;滚动数组&#xff1a; &#x1f4c1; 完全背包问题 &#x1f4c1; 总结 &#x1f308;前言&#x1f308;&#xff1a; 这篇文章主…

gin框架开发基础功能实践汇总

gin定位&#xff1a;一款高性能的go web框架 基本实践一次搞定&#xff01; 目录 项目结构 main.go&#xff08;多组路由&#xff09; 以order.go测试GET各请求 以customer.go测试POST/PUT请求 调用目标API前先校验(多处理器) 多路由API执行前校验 项目结构 main.go&…

Webpack5 基本使用 - 3(完结)

环境区分 可以定义多个配置文件&#xff0c;通过 webpack-merge 合并配置文件。 安装 webpack-merge yarn add webpack-merge公共配置 // webpack.common.js const path require(path) const HtmlWebpackPlugin require(html-webpack-plugin)module.exports {entry: path…

牛客——都别吵吵了,我才是签到(质因数分解和统计质因数次数)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 陶陶刚上一年级&#xff0c;今天数学课上老师教了乘法和除法&#xff0c;老师留了一道课后习题&#xff0c;陶陶很快地写完了&#xff0c;现在想请你帮助他检查一下是否和答案一致。…

Ubuntu 申请 SSL证书并搭建邮件服务器

文章目录 Log 一、域名连接到泰坦&#xff08;Titan&#xff09;电子邮件二、NameSilo Hosting 避坑三、Ubuntu 搭建邮件服务器1. 环境准备2. 域名配置3. 配置 Postfix 和 Dovecot① 安装 Nginx② 安装 Tomcat③ 申请 SSL 证书&#xff08;Lets Encrypt&#xff09;④ 配置 pos…

ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连

用了网上的办法&#xff1a; 1、修改listener.ora的参数,把动态的参数设置为静态的参数,红色标注部分 位置D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN SID_LIST_LISTENER (SID_LIST (SID_DESC (SID_NAME PLSExtProc) (ORACLE_HOME D:\oracle\produ…