在线接口文档预言方案

news/2024/4/29 22:28:39/文章来源:https://blog.csdn.net/zw1996/article/details/137089119

在线接口文档预言方案

要求:

​ 支持自动生成接口文档

​ 能够支持在线测试(http,websocket)

​ 对代码没有侵入性

一、目前涉及的相关技术收集

sudo apt update #更新数据
sudo apt upgrade #更新软件
sudo apt install openssh-server #下载安装ssh服务的服务器
sudo apt install openssh-client #下载安装ssh服务的客户端

二、落地 doxygen

1、vscode中安装doxygen插件,设置生成doxygen快捷键,

2、网上学习doxygen的注释字节进行接口注释的编写,

3、新建目录来编译doxygen为可执行程序从而每次接口更新执行执行doxygen即可。

  • sudo apt install doxygen
  • sudo apt install graphviz
  • sudo apt install doxy-doc

4、生成文档,

cmake …

make doc

既可以在build下生成html文件夹。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Doxyfile.in doxygen 的配置文件格式

PROJECT_NAME           = "@CMAKE_PROJECT_NAME@"
PROJECT_NUMBER         = @MAJOR_VERSION@.@MINJOR_VERSION@.@PATCH_VERSION@.@BUILD_VERSION@INPUT                  = @doxy_main_page@ \@CMAKE_CURRENT_LIST_DIR@  \@SrcFile@ 
FILE_PATTERNS          = *.hpp
RECURSIVE              = YES
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = YES
EXTRACT_STATIC         = YES
EXCLUDE_PATTERNS       = */thirdpart/*
USE_MDFILE_AS_MAINPAGE = @doxy_main_page@
INPUT_ENCODING         = UTF-8
OUTPUT_LANGUAGE        = Chinese

CMakeLists.txt

cmake_minimum_required (VERSION 3.10)message(STATUS "Build documentation open")
#SrcFile  表示需要解析的目录
set(SrcFile ${CMAKE_CURRENT_LIST_DIR}/../src)include(build_doxygen.cmake)
build_doxygen()

build_doxygen.cmake

macro(build_doxygen)FIND_PACKAGE(Doxygen)
IF(${DOXYGEN_FOUND})SET(doxyfile_in ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)SET(doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)CONFIGURE_FILE(${doxyfile_in} ${doxyfile} @ONLY)ADD_CUSTOM_TARGET(docCOMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}COMMENT "Generating API documentation with Doxygen"VERBATIM)install(CODE "execute_process(COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}COMMAND_ECHO STDOUTWORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build/)")INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_PREFIX}/doc)
else()
MESSAGE(WARNING "Doxygen is needed to build the documentation.Run sudo apt-get install doxygen doxygen-doc doxygen-gui graphviz")
ENDIF()endmacro()

查阅:

cmake使用doxygen生成document_doxygen cmake_六月的雨唯你的博客-CSDN博客

Doxygen 注释语法规范 - schips - 博客园 (cnblogs.com)‘

三、落地apidoc

apidoc 官网:apidoc/apidoc: RESTful web API Documentation Generator. (github.com)

1、安装nodejs,因为后面apidoc也是通过nodejs安装最好版本对应,不然会出现错
安装14.2版本

https://blog.csdn.net/qq_36553707/article/details/122849920

2、npm下载apidoc

sudo npm install apidoc -g

3、直接修改执行程序 apidoc (find搜索一下即可)中defaultIncludeFilters 属性,添加hpp,并在解析的时候加上-f “.hpp”

4、安装nginx,将apidoc生成的html发布到web上

nginx安装 https://blog.csdn.net/qq_36553707/article/details/122849920
nginx配置服务 https://blog.csdn.net/qqq2018/article/details/106245836

打开/etc/nginx/nginx.conf,在http的大括号最后加入server配置
server {listen 8080;server_name example.com;  # 替换为你的域名location / {root /home/speedbot/workcode/apidoc-demo/apidoc;  # 替换为你 HTML 文件所在的目录index index.html;}
}

5、测试dapr服务的 http 接口如何访问

https://www.cnblogs.com/magicbowie/p/15596792.html
https://v1-5.docs.dapr.io/zh-hans/reference/api/service_invocation_api/

6、进行在线测试(目前因为dapr跨越问题无法测试,websocket 不支持)

7、支持post和get两种方式,

apidoc升级

进入容器/opt/source/apidoc 替换需要修改的文件即可。

四、落地oat++swaggercpp

直接参考:C++ RESTful web service with Swagger-UI and auto-documented endpoints | oatpp (medium.com)

主要需下载1.1.0版本的oat++和oatswagger,否则会出现一些错误或者编译条件的约束。

接入比较复杂。

五、总结

最后可能还是使用apidoc,只是需要修改源码来增加websocket部分的连接通信。

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

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

相关文章

Qt教程 — 3.7 深入了解Qt 控件: Layouts部件

目录 2 如何使用Layouts部件 2.1 QBoxLayout组件-垂直或水平布局 2.2 QGridLayout组件-网格布局 2.3 QFormLayout组件-表单布局 在Qt中,布局管理器(Layouts)是用来管理窗口中控件位置和大小的重要工具。布局管理器可以确保窗口中的控件在…

鸿蒙开发图形图像:【图形子系统】

图形子系统 图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用开发。 1.1 轻量系统 简介 图形子系统主要包括…

武忠祥《660题》高效刷题包+资料分享

660题的难度书虽然比较难,对于基础的考察比较深入,所以,有没有一种可能,做题太慢,是因为基础不好导致的! 所以再继续做下去,就没有什么意义了,因为这就像是用一把钝刀去砍树&#x…

Linux 反引号、单引号以及双引号的区别

1.单引号—— 单引号中所有的字符包括特殊字符($,,和\)都将解释成字符本身而成为普通字符。它不会解析任何变量,元字符,通配符,转义符,只被当作字符串处理。 2.双引号——" 双引号,除了$,…

spring boot3自定义注解+拦截器+Redis实现高并发接口限流

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…

汽车ECU的虚拟化技术(四) -- 对MCU虚拟化实现难点的思考

目录 1.OEM面临的难点 2.Hypervisor的难点思考 2.1 VMs部署到物理内核上的实现方式 2.2 VM调度机制 3.小结 1.OEM面临的难点 为什么汽车ECU在逐渐倡导虚拟化,主要原因是整车电子电气架构从分布式往集中式演进,OEM希望将以前多个ECU的功能聚合到一个…

腾讯云服务器新购、续费、升级如何领取优惠券?

腾讯云作为国内领先的云计算服务提供商,一直致力于为用户提供高效、稳定、安全的云服务。为了吸引广大用户上云,腾讯云经常推出各种优惠活动,其中就包括服务器新购、续费、升级的优惠券。本文将为大家详细介绍如何领取腾讯云服务器优惠券&…

将本地项目上传至码云

1.打开git,然后进入到项目目录 2.进入到项目目录,然后进行git的初始化 成功后本地项目目录内会多出一个“.git”文件: 指令介绍: git init -- 建立本地仓库 3.在码云上创建仓库,名为“MyMoney” 创建过程参考&…

2024最新Win系统下VSCode下载安装与配置C/C++教程

2024最新Win系统下VSCode下载安装与配置C/C教程 文章目录 2024最新Win系统下VSCode下载安装与配置C/C教程1、下载安装VSCode2、安装运行时环境GCGC的环境配置 3、安装VSCode插件4、配置程序调试环境4.1确定文件存储路径4.2新建文件夹【.vscode】4.3在.vscode文件夹里新建四个配…

【前端学习——js篇】5.事件循环

详细:https://github.com/febobo/web-interview 5.事件循环 js是一种单线程语言,同一时间内只能做一件事情,为了避免单线程阻塞的方法就是事件循环。 在javascript当中,所有的任务都可以分为: 同步任务:按…

Linux 系统 docker搭建LNMP环境

1、安装nginx docker pull nginx (默认安装的是最新版本) 2、运行nginx docker run --name nginx -p 80:80 -d nginx:latest 备注:--name nginx 表示容器名为 nginx -d 表示后台运行 -p 80:80 表示把本地80端口绑定到Nginx服务端的 80端口 nginx:lates…

基于51单片机的拔河游戏Proteus仿真

地址:https://pan.baidu.com/s/18LMEo-_WYcoyTOkWYJ0NUg 提取码:1234 仿真图: 1)设计一个能进行拔河游戏的电路,通过按键控制游戏开始和复位。 2)电路使用9个发光二极管排成一行,中间的LED为拔…

第二百二十八回

文章目录 1. 概念介绍2. 修改方法2.1 修改形状2.2 修改颜色2.3 修改位置 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何创建以图片为背景的页面"相关的内容,本章回中将介绍如何修改按钮的形状.闲话休提,让我们一起Talk Flutter吧。 1. …

动态规划课堂7-----两个数组的dp问题(等价代换)

目录 引言: 例题1:最长公共子序列 例题2:不同的子序列 例题3:通配符匹配 例题4:正则表达式 结语: 引言: 本节我们就要进入两个数组的dp问题的学习,通过前面几个章节的学习&…

终于来了!FastGPT 正式兼容 GPT 应用

终于来了!FastGPT 正式兼容 GPT 应用 FastGPT V4.7 正式加入了工具调用功能,可以兼容 GPTs 的 Actions。这意味着,你可以直接导入兼容 GPTs 的 Agent 工具! Gapier 是一组无需编码,开箱可用的,并且已经适配…

快速入门go语言

环境搭建 编译器安装 1、编译器下载地址 2、打开命令行模式,输入go version ide安装 ide下载地址 依赖管理 goproxy 1、goproxy代理地址 // 阿里云 https://mirrors.aliyun.com/goproxy // 微软 https://goproxy.io // 七牛 https://goproxy.cn 2、ide配置g…

蚂蚁庄园今日答案

蚂蚁庄园是一款爱心公益游戏,用户可以通过喂养小鸡,产生鸡蛋,并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料,使用鸡饲料喂鸡之后,会可以获得鸡蛋,可以通过鸡蛋来进行爱心捐赠。其中&#…

UG NX二次开发(C#)-通过曲线组生成NURBS曲面

文章目录 1、前言2、UG NX中通过曲线组生成NURBS曲面的操作3、采用NXOpen C#方法的源代码1、前言 在UG NX中,曲线、曲面的操作使用比较多,对于创建NURBS曲面,可以通过曲线组来生成,本文以NXOpen C#的方法实现通过曲线组生成NURBS曲面的功能。对于UG NX二次开发感兴趣或者有…

windows上打开redis服务闪退问题处理

方法1:在windows上面打开redis服务时,弹窗闪退可能是6379端口占用,可以用以下命令查看: netstat -aon | findstr 6379 如果端口被占用可以用这个命令解决: taskkill /f /pid 进程号 方法2: 可以使用…

力扣热门算法题 112. 路径总和,115. 不同的子序列,120. 三角形最小路径和

112. 路径总和,115. 不同的子序列,120. 三角形最小路径和,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.25 可通过leetcode所有测试用例。 目录 112. 路径总和 解题思路 完整代码 Java Python 115…