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

2024-02-25 20:20

本文主要是介绍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 docfor dir in $(ls -d */)
doif [ -d "$dir"/.git ]; thenecho "$dir" && cd "$dir" && git pull && cd ..fi
doneecho "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
/usr/local/bin/apidoc -i /work/docker-demo/src -o /work/doc
touch /work/doc

六,docker运行

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

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

七,优化方向

使用crontab来定时更新接口文档,大部分是无效工作,因为接口文档的源文件并未变化。
可以考虑使用jenkins来集成。
大致流程为:

配置项目git源码地址
周期性检查源码是否更新
调用脚本生成接口文档
接口文档打包上传nginx服务器

具体流程就不再详细阐述了,留着各位大佬自己研究实现!


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

-over-

这篇关于apidoc接口文档的自动更新与发布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746592

相关文章

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos