在线接口文档预言方案

2024-03-28 23:04

本文主要是介绍在线接口文档预言方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在线接口文档预言方案

要求:

​ 支持自动生成接口文档

​ 能够支持在线测试(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.chinasem.cn/article/856938

相关文章

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT