apidoc接口文档的自动更新与发布

文章目录

  • 一、概述
  • 二、环境准备
  • 三、接口文档生成
    • 1. 下载源码
    • 2. 初始化
    • 3.执行
  • 四、文档发布
  • 五,配置定时运行
  • 六,docker运行

一、概述

最近忙于某开源项目的接口文档整理,采用了apidoc来整理生成接口文档。
apidoc是一个可以将源代码中的注释直接生成api接口文档的工具,对现有代码无侵入。他可以根据代码注释生成web api文档,支持大部分主流语言java javascript php coffeescript erlang perl python ruby go…,相对而言,web接口的注释维护起来更加方便,不需要额外再维护一份文档。

下面我们以 docker-demo 项目为例来展示如何实现接口文档的自动更新与发布。
效果如下:
http://1.94.177.4
在这里插入图片描述

二、环境准备

云主机,centos7系统,安装组件:git、nodejs、npm、apidoc、nginx

组件作用
git源码下载
nodejs、npmapidoc环境
apidoc接口文档工具软件
nginx接口文档发布服务器

安装git、nodejs、npm、apidoc

#安装git
yum install -y git

#安装apidoc之前要先安装node.js、npm
yum install -y nodejs
yum install -y npm

#安装apidoc
npm install -g apidoc

#验证
git --version
apidoc -v
apidoc -h

配置nginx repo

vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

安装nginx

#查看yum的nginx信息
yum info nginx

#执行命令安装
yum -y install nginx

#查看安装目录
whereis nginx

#设为开机启动
sudo systemctl enable nginx.service

启动/停止/重启/查看状态  nginx
sudo systemctl start   nginx.service
sudo systemctl stop    nginx.service
sudo systemctl restart nginx.service
sudo systemctl status  nginx.service

三、接口文档生成

1. 下载源码

使用git下载

mkdir /work
cd /work
git clone https://gitee.com/00fly/docker-demo.git

2. 初始化

cd /work/docker-demo
sh init.sh

执行后,会拷贝all-in-one.sh到上层目录

3.执行

cd /work/
sh all-in-one.sh

all-in-one.sh 实现了git更新与apidoc文档生成

#!/bin/sh
rm -rf doc

for dir in $(ls -d */)
do
  if [ -d "$dir"/.git ]; then
    echo "$dir" && cd "$dir" && git pull && cd ..
  fi
done

echo "Will Run: apidoc -i  docker-demo/src -o doc"
apidoc -i  docker-demo/src -o doc

在这里插入图片描述

四、文档发布

通过nginx发布

whereis nginx
cd /etc/nginx/conf.d
vi default.conf

修改内容为下图标红内容
在这里插入图片描述

重启nginx

nginx -t
nginx -s reload

五,配置定时运行

#查看
crontab -l

#编辑
crontab -e

输入

* * * * * /bin/sh /work/all-in-one-cron.sh

crontab 实现了每分钟生成接口文档,具体可下拉文档到最后,看时间戳内容,e.g:
构建于 apidoc 1.2.0 - Sat Feb 24 2024 17:26:01 GMT+0800 (China Standard Time)

crontab中定义的shell必须使用全路径

all-in-one-cron.sh

#!/bin/sh
#download source by git clone
rm -rf /work/docker-demo && cd /work && /usr/bin/git clone https://gitee.com/00fly/docker-demo.git

#move sh to parent directory
cd /work/docker-demo && sh init.sh

#build apidoc
touch /work/doc
/usr/local/bin/apidoc -i /work/docker-demo/src -o /work/doc

六,docker运行

docker运行无需配置nodejs环境,apidoc运行环境在容器内,较方便

请参考 https://gitee.com/00fly/effict-side/tree/master/apidoc-image


有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

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

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

相关文章

数据结构D4作业

1.实现单向循环链表的功能 loop.c #include "loop.h" loop_p create_loop() { loop_p H(loop_p)malloc(sizeof(loop)); if(HNULL) { printf("创建失败\n"); return NULL; } H->len0; H->nextH; ret…

Android进阶之旅(第5天)

充实的一天又过去了,今天真的好冷啊,我们这里雪很大,早上最傻逼的决定就是穿了一个短的棉袜出来,漏脚踝,冷成傻子 接下来老规矩,看下昨天计划的完成情况: 今日计划: 1.过bug 2.看…

CentOS7 安装Python3.8

在 CentOS 7 上,按照以下步骤安装 Python 3.8: 添加EPEL仓库:首先安装 EPEL(Extra Packages for Enterprise Linux)仓库 sudo yum install epel-release安装Software Collections (SCL)仓库:随后&#xff0…

搭建私有Git服务器:GitLab部署详解

引言: 为了方便团队协作和代码管理,许多组织选择搭建自己的私有Git服务器。GitLab是一个集成了Git版本控制、项目管理、代码审查等功能的开源平台,是搭建私有Git服务器的理想选择。 目录 引言: 一、准备工作 在开始部署GitLab之…

更新至2022年世界各国数字经济发展相关指标(23个指标)

更新至2022年世界各国数字经济发展相关指标(23个指标) 1、时间:具体指标时间见下文 2、来源:WDI、世界银行、WEF、UNCTAD、SJR、国际电联 3、指标:移动网络覆盖率(2000-2022)、固定电话普及率…

Code-Audit(代码审计)习题记录6-7

介绍: 自己懒得搭建靶场了,靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习,可以随地访问,本文所有的题目均来源于网站HSCSEC-Code Audit 6、习题6 题目内容如下: 源代…

c++入门学习⑦——继承和多态(超级详细版)

目录 前言 继承 继承是什么? 为什么会存在继承? 语法: 一些基本的定义: 三种继承方式: 对象模型 对于构造和析构的顺序 同名函数的处理方式 总结: 静态成员: 定义: 性…

雨云GPU云服务器搭建SD(Stable Diffusion)的教程,搭建自己的AI绘画网站,AIGC

雨云GPU云服务器搭建Stable Diffusion的教程,搭建自己的AI图片生成网站,AIGC Stable Diffusion是什么 Stable Diffusion是一种基于潜在扩散模型(Latent Diffusion Models)的文本到图像生成模型,由CompVis、Stability…

gma 2.0.6 (2024.02.21) 更新日志

安装 gma 2.0.6 pip install gma2.0.6网盘下载: 链接:https://pan.baidu.com/s/1P0nmZUPMJaPEmYgixoL2QQ?pwd1pc8 提取码:1pc8 注意:此版本没有Linux版! 编译gma的Linux虚拟机没有时间修复,本期Linux版继…

普中51单片机学习(AD转换)

AD转换 分辨率 ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度的1/(2^12)。 一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V1/(2^12 )2.4mV。 量化误差 …

创建者模式(Builder Pattern):构造复杂对象的通用解决方案

文章目录 **一、技术背景与应用场景****为何使用创建者模式?****典型应用场景包括但不限于:** **二、创建者模式定义与结构****三、使用步骤举例**四、优缺点分析总结 一、技术背景与应用场景 创建者模式是一种对象创建型设计模式,它通过将复…

国家建筑装配式内装产业基地在沪成立,副主任单位优积科技协同助推绿色低碳循环发展

上海市室内装饰行业协会装配式内装产业专业委员会成立大会暨“国家建筑装配式内装产业基地”项目启动会于3月21日下午1点在上海光大酒店隆重举行。出席此次活动的包括市装协会长徐国俭,市装协党支部书记兼秘书长丛国梁,市装协装配式内装委主任顾泰昌&…

数字化转型导师坚鹏:数据安全法解读与政府数字化转型

网络安全法、数据安全法、个人信息保护法解读与政府数字化转型 课程背景: 很多机构存在以下问题: 不清楚网络安全法、数据安全法、个人信息保护法立法背景? 不知道如何理解网络安全法、数据安全法、个人信息保护法政策? 不…

2024年 Openai的API相关全部概论汇总(通用版)

2024年 Openai的API相关全部概论汇总(通用版) 文章目录 2024年 Openai的API相关全部概论汇总(通用版)一、前言1、python快速开始 二、Openai 平台以及相关项目1、Openai的API管理平台2、ChatGPT项目推荐(1)…

每日学习总结20240222

每日总结 一旦停下来太久,就很难继续了 ——《一个人的朝圣》 20240222 1. 自定义逻辑 请设计一个函数single_track_logic,传入三个参数,第一个参数是int数组,第二个参数是一个int变量,第三个参数是一个以int为返回值&#xff0c…

每日五道java面试题之spring篇(四)

目录: 第一题 Spring框架的设计目标,设计理念,和核心是什么?第二题. Spring由哪些模块组成?第三题. 详细讲解一下核心容器(spring context应用上下文) 模块第四题.Spring框架中有哪些不同类型的事件第五题.…

【C++】类与对象—— 初始化列表 、static 静态成员、

类与对象 1 再谈构造函数1.1 构造函数体赋值1.2 初始化列表语法:建议:初始化顺序:注意: 1.3 explicit关键字 2 static 静态成员2.1 概念2.2 声明成员变量2.3 使用类的静态成员2.4 定义静态成员总结 Thanks♪(・ω&#…

Linux:gcc的基本知识

gcc 是一个将C语言文件变成可执行文件的工具。 在Linux中,如果需要将一个C语言文件变得可以执行,那么除了这个文件本身的内容是C语言编写的内容外,还需要gcc这个编译工具进行编译才行。 gcc 使用的格式方法:gcc 要编译的文件 //在该代码下…

【数据结构与算法初学者指南】【冲击蓝桥篇】String与StringBuilder的区别和用法

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《数据结构与算法:初学者入门指南》📘&am…

Llama2模型的优化版本:Llama-2-Onnx

Llama2模型的优化版本:Llama-2-Onnx。 Llama-2-Onnx是Llama2模型的优化版本。Llama2模型由一堆解码器层组成。每个解码器层(或变换器块)由一个自注意层和一个前馈多层感知器构成。与经典的变换器相比,Llama模型在前馈层中使用了不…
最新文章