当前位置: 首页 > article >正文

Java项目生成接口文档的方案

文章目录

  • 问题:Java项目生成接口文档的方案
    • 方案一:`Swagger3.0`
    • 方案二:`Apipost`
    • 两者对比

问题:Java项目生成接口文档的方案

需求

1、需要生成生成时间,作者名称,项目名称,接口名称,请求参数,请求地址,请求类型,请求用例,请求方式,相应参数,响应用例。

2、需要生成markdown文档。

方案一:Swagger3.0

Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它提供了一套工具来帮助开发者设计、构建、文档化以及使用 RESTful API

关键注解

@Api(tags = "后台管理")说明:该控制器名称为后台管理
@ApiOperation说明:置于接口名称上面,标识接口涵义

依赖:Java项目中添加依赖坐标

<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>

添加配置:Java项目中添加配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;@Configuration
public class SwaggerConfig {@Bean(value = "defaultApi2")public Docket customDocket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")).build();}/*** 构建 api文档的详细信息函数** @return*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("springboot-swagger2-demo").version("1.0.0").description("SpringBoot 集成 Swagger2 构建RESTful API").contact(new Contact("geekmice", "http://geekmice.cn", "2437690868@qq.com")).build();}
}

添加注解:在控制器类和方法上添加 Swagger 注解

package com.example.demo.controller;import com.example.demo.entity.Goods;
import com.example.demo.entity.GoodsVO;
import com.example.demo.entity.GoodsDTO;
import com.example.demo.service.GoodsService;
import com.example.demo.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;import java.util.Objects;/*** @Author pmb* @Desc (Goods)表控制层* @Date 2025-03-27 11:27:46*/
@RestController
@RequestMapping("goods")
@RequiredArgsConstructor
@Api(tags = "后台管理")
public class GoodsController {private final GoodsService goodsService;@ApiOperation("分页查询")@PostMapping("/queryByPage")public R<IPage<GoodsVO>> queryByPage(@RequestBody GoodsDTO param) {return goodsService.queryByPage(param);}@ApiOperation("根据ID查询")@PostMapping("/queryById")public R<GoodsVO> queryById(@RequestBody GoodsDTO param) {return goodsService.queryById(param.getId());}@ApiOperation("新增")@PostMapping("/insert")public R insert(@RequestBody Goods param) {return goodsService.insert(param);}@ApiOperation("根据id修改")@PostMapping("/update")public R update(@RequestBody Goods param) {if (Objects.isNull(param.getId())) {return R.failed("ID不能为空");}return goodsService.update(param);}@ApiOperation("根据id删除")@PostMapping("/deleteById")public R deleteById(@RequestBody GoodsDTO param) {return goodsService.deleteById(param.getId());}}

启动项目

image-20250327160500204

访问文档

启动项目后,访问 http://localhost:8080/doc.html 即可查看生成的接口文档。

image-20250327160555287

如何导出接口文档markdown

访问地址http://localhost:8080/doc.html#/home之后

点击左侧文档管理-》离线文档

image-20250327160716300

导出四种类型的文档,pdf还未实现。

下载之后,如下图,四种方式

image-20250327160843008

方案二:Apipost

Apipost 是一款功能强大的 API 调试与管理工具,集 API 设计、调试、文档生成等多种功能于一体,能够帮助开发者更高效地进行 API 相关的开发与测试工作。

接口编写完成之后,打开Apipost,对已完成的接口添加测试

image-20250327161222528

现在对demo目录中的接口进行导出

点击demo项目右侧三个点,分享,复制地址

image-20250327161327207

image-20250327161347805

到达接口文档待导出界面

image-20250327161434505

点击右侧,导出文档按钮,选择导出markdown

image-20250327161537027

生成具体md文档

image-20250327161613459

两者对比

生成时间作者名称项目名称接口名称请求参数请求示例请求方式响应参数响应示例生成md
方案一0111101101
方案二1111011011

相关文章:

Java项目生成接口文档的方案

文章目录 问题&#xff1a;Java项目生成接口文档的方案方案一&#xff1a;Swagger3.0方案二&#xff1a;Apipost两者对比 问题&#xff1a;Java项目生成接口文档的方案 需求 1、需要生成生成时间&#xff0c;作者名称&#xff0c;项目名称&#xff0c;接口名称&#xff0c;请…...

Android第七次面试总结(Java和kotlin源码级区别 )

Java 和 Kotlin 作为用于软件开发尤其是 Android 和后端开发的编程语言&#xff0c;在源码层面存在诸多区别&#xff0c;下面从多个方面进行深入讲解&#xff1a; 1. 基础语法与变量声明 变量声明方式 Java&#xff1a;变量声明时必须明确指定数据类型&#xff0c;并且若要声…...

北斗导航 | 改进奇偶矢量法的接收机自主完好性监测算法原理,公式,应用,RAIM算法研究综述,matlab代码

改进奇偶矢量法的接收机自主完好性监测算法研究 摘要 接收机自主完好性监测(RAIM)是保障全球导航卫星系统(GNSS)安全性的核心技术。针对传统奇偶矢量法在噪声敏感性、多故障隔离能力上的缺陷,本文提出一种基于加权奇偶空间与动态阈值的改进算法。通过引入观测值权重矩阵重…...

案例实践 | 招商局集团以长安链构建“基于DID的航运贸易数据资产目录链”

概览 案例名称 基于DID的航运贸易数据资产目录链 业主单位 招商局集团 上线时间 2024年10月 用户群体 供数用数企业和个人 用户规模 集团内20企业 案例背景 招商局集团深入落实“促进数据高效流通使用、赋能实体经济”精神&#xff0c;深化集团数字化水平&#xff0c…...

【C++】httplib:轻量级的 HTTP 服务器和客户端

本教程采用渐进式讲解方式&#xff0c;适用于 MinGW 环境。我们将从 httplib 的基本概念入手&#xff0c;通过一个小型 Demo 展示其核心用法&#xff0c;最后深入探讨高级功能与实际应用场景。 1. 简介 1.1 httplib 基本概念 httplib 是一个轻量级的 C HTTP 库&#xff0c;设…...

【算法工程】RAG:针对linux下文档解析出现乱码问题的解决

RAG服务中&#xff0c;非常关键的模块是文档解析。但将解析服务部署到linux平台&#xff0c;解析word、ppt等文档时可能就会出现乱码&#xff0c;核心原因是系统未能识别出对应的字体。因为word、ppt在windows下是最适配的&#xff0c;如果将解析服务部署到linux上&#xff0c;…...

亚马逊云科技全面托管DeepSeek-R1模型现已上线

文章目录 亚马逊云科技全面托管DeepSeek-R1模型现已上线在Amazon Bedrock中开始使用DeepSeek-R1模型DeepSeek-R1现已可用 亚马逊云科技全面托管DeepSeek-R1模型现已上线 亚马逊云科技提供众多免费云产品&#xff0c;可以访问&#xff1a;亚马逊云科技 截至1月30日&#xff0c;D…...

2025年移动端开发性能优化实践与趋势分析

启动速度优化 本质&#xff1a;缩短首次可见帧渲染时间。 方法&#xff1a; iOS&#xff1a;利用Core ML本地模型轻量化部署&#xff0c;减少云端等待。Android&#xff1a;强制启用SplashScreen API&#xff0c;通过setKeepOnScreenCondition控制动画时长。冷启动需将耗时操…...

Docker Compose介绍

基本概念 Docker-Compose是Docker官方的开源项目&#xff0c;负责实现对docker容器集群的快速编排。 可以这么理解&#xff0c;docker compose是docker提出的一个工具软件&#xff0c;可以管理多个docker容器组成一个应用&#xff0c;只需要编写一个YAML格式的配置文件docker…...

openGauss关联列数据类型不一致引起谓词传递失败

今天分享一个比较有意思的案例 注意&#xff1a;因为原始SQL很长&#xff0c;为了方便排版&#xff0c;简化了SQL 下面SQL跑60秒才出结果&#xff0c;客户请求优化 select dtcs.owner, dtcs.table_name, dtcs.column_name, dct.commentsfrom dba_tab_columns dtcsleft outer j…...

头歌实践教学平台--【数据库概论】--SQL

一、表结构与完整性约束的修改(ALTER) 1.修改表名 USE TestDb1; alter table your_table rename TO my_table; 2.添加与删除字段 #语句1&#xff1a;删除表orderDetail中的列orderDate alter table orderDetail drop orderDate; #语句2&#xff1a;添加列unitPrice alter t…...

Unity 全栈开发商业级 MMORPG 大型网游:源码与课件助力进阶之路

Unity 全栈开发商业级 MMORPG 大型网游&#xff1a;源码与课件助力进阶之路 在竞争激烈的游戏市场中&#xff0c;大型多人在线角色扮演游戏&#xff08;MMORPG&#xff09;凭借其丰富的世界观、庞大的玩家社区以及持续的内容更新&#xff0c;始终占据着重要地位。Unity 作为一…...

软件工程面试题(六)

1、forward及redirect 的区别?有哪些方式实现 <jsp:forward>重定向后url地址栏地址不变还是原来的地址&#xff1b;而response.sendRedirect()重定向后url地址栏地址显示的请求后的新地址。<jsp:forward>重定向的时候可以保存回话信息&#xff0c;因此可以使用re…...

Apache Dubbo 与 ZooKeeper 集成:服务注册与发现的全解析

在分布式系统中&#xff0c;Apache Dubbo 作为一个高性能的 RPC 和微服务框架&#xff0c;广泛用于服务治理&#xff0c;而 ZooKeeper 作为其常用注册中心&#xff0c;提供了服务注册与发现的核心能力。在2025年的技术生态中&#xff0c;理解 Dubbo 与 ZooKeeper 的集成原理和使…...

算法基础——模拟

目录 1 多项式输出 2.蛇形方阵 3.字符串的展开 模拟&#xff0c;顾名思义&#xff0c;就是题⽬让你做什么你就做什么&#xff0c;考察的是将思路转化成代码的代码能⼒。这类题⼀般较为简单&#xff0c;属于竞赛⾥⾯的签到题&#xff08;但是&#xff0c;万事⽆绝对&#xff…...

【第30节】MFC编程:ListCtrl控件和TreeCtrl控件

目录 引言 一、高级控件ListCtrl 二、高级控件TreeCtrl 三、Shell控件 四、CImageList 五、综合代码示例 引言 在MFC编程里&#xff0c;高级控件能大幅提升应用程序的交互性与功能性。接下来&#xff0c;咱们会详细讲讲ListCtrl和TreeCtrl这两个高级控件。不仅会介绍它们…...

kotlin知识体系(四) : inline、noinline、crossinline 关键字对应编译后的代码是怎样的 ?

1. inline、noinline、crossinline 的作用 在 Kotlin 里&#xff0c;inline、noinline 和 crossinline 这几个关键字和高阶函数紧密相关&#xff0c;它们能够对高阶函数的行为进行优化和控制。本文接下来会详细介绍它们的作用和原理。 1.1 inline 关键字 inline 关键字用于修…...

JavaScript 手写 call、apply、bind 和 new

1. 手写 call 方法 核心思路&#xff1a;改变函数的 this 指向并立即执行&#xff0c;通过将函数临时挂载到目标对象上调用。 Function.prototype.myCall function (context, ...args) {// 如果 context 为 null 或 undefined&#xff0c;则默认为 windowcontext context |…...

睡眠健康领域的智能硬件设备未来的发展趋势

随着社会节奏的不断加快&#xff0c;人们的睡眠问题愈发多了起来&#xff0c;主要表现有以下几个方面&#xff1a; 睡眠质量下降 浅睡眠增多&#xff1a;现代生活中&#xff0c;人们面临着各种压力源&#xff0c;如工作压力、生活琐事、经济压力等&#xff0c;这些压力会导致大…...

计算机网络基础:量子通信技术在网络中的应用前景

计算机网络基础:量子通信技术在网络中的应用前景 一、前言二、量子通信技术基础2.1 量子通信的基本概念2.2 量子通信的主要原理2.2.1 量子密钥分发(QKD)原理2.2.2 量子隐形传态原理三、量子通信技术的特点3.1 绝对安全性3.2 超高通信速率潜力3.3 抗干扰能力强四、量子通信技…...

Postman 下载文件指南:如何请求 Excel/PDF 文件?

在 Postman 中进行 Excel/PDF 文件的请求下载和导出&#xff0c;以下是简明的步骤&#xff0c;帮助你轻松完成任务。首先&#xff0c;我们将从新建接口开始&#xff0c;逐步引导你完成整个过程。 Postman 请求下载/导出 excel/pdf 文件教程...

Stereolabs ZED Box Mini:机器人与自动化领域的人工智能视觉新选择

在人工智能视觉技术快速发展的今天&#xff0c;其应用场景正在持续拓宽&#xff0c;从智能安防到工业自动化&#xff0c;从机器人技术到智能交通&#xff0c;各领域都在积极探索如何利用这一先进技术。而 Stereolabs 推出的ZED Box Mini&#xff0c;正是一款专为满足这些多样化…...

arm之s3c2440的I2C的用法

基础概念 IC&#xff08;Inter-Integrated Circuit&#xff09;又称I2C&#xff0c;是是IICBus简称&#xff0c;所以中文应该叫集成电路总线。 IIC的总线的使用场景&#xff0c;所有挂载在IIC总线上的设备都有两根信号线&#xff0c;一根是数据线SDA&#xff0c;另一 根是时钟…...

安装node,配置npm, yarn, pnpm, bun

文章目录 安装node, 配置 npm, yarn, pnpm, bun配置node配置 npm, yarn, pnpm, bunnpmyarnpnpmbun 安装node, 配置 npm, yarn, pnpm, bun 配置node ​ 输入网址&#xff1a;Node.js&#xff0c;包含各种安装方式以及多版本管理方式。也可以直接下载安装包。 安装包的安装过程…...

redis部署架构

一.redis多实例 如上图所示&#xff0c;我们经常使用实例的端口号来作为实例的安装目录名称。 1.创建实例安装目录 如上图所示&#xff0c;这是创建实例的安装目录&#xff0c; 2.拷贝实例的配置文件 如上图所示&#xff0c;将redis解压目录下的配置文件拷贝到对应的conf目录…...

深入理解指针(4)(C语言版)

文章目录 前言一、回调函数是什么&#xff08;一&#xff09;定义&#xff08;二&#xff09;工作原理&#xff08;三&#xff09;应用场景 二、qsort举例&#xff08;一&#xff09;qsort函数简介&#xff08;二&#xff09;比较函数的定义&#xff08;三&#xff09;使用示例…...

【HTML】验证与调试工具

个人主页&#xff1a;Guiat 归属专栏&#xff1a;HTML CSS JavaScript 文章目录 1. HTML 验证工具概述1.1 验证的重要性1.2 常见 HTML 错误类型 2. W3C 验证服务2.1 W3C Markup Validation Service2.2 使用 W3C 验证器2.3 验证结果解读 3. 浏览器开发者工具3.1 Chrome DevTools…...

【Mysql】SQL 优化全解析

文章目录 一、理解执行计划​1.1 执行计划的作用​1.2 查看执行计划​ 二、查询优化​2.1 避免全表扫描​2.2 使用覆盖索引​2.3 合理使用 JOIN​ 三、索引优化​3.1 索引设计原则​3.2 索引维护​ 在数据驱动的当今时代&#xff0c;MySQL 作为应用广泛的开源关系型数据库&…...

​​SenseGlove与Aeon Robotics携手推出HEART项目,助力机器人培训迈向新台阶

在自动化和机器人技术快速发展的今天&#xff0c;SenseGlove和Aeon Robotics联合推出了一项创新项目——HEART项目。该项目在欧盟资助的MasterXR框架内展开&#xff0c;旨在通过整合虚拟现实&#xff08;VR&#xff09;、力反馈触觉手套&#xff08;SenseGlove项目Rembrandt&am…...

mapbox进阶,仿照百度,加载marker点位,移入marker点切换图标,点击展示气泡,气泡和marker联动

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️marker 标注点位 api1.3.1 ☘️构造函数…...