四川淘宝网站建设方案视觉设计专业
文章目录
- 问题: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());}}
启动项目

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

如何导出接口文档markdown
访问地址http://localhost:8080/doc.html#/home之后
点击左侧文档管理-》离线文档

导出四种类型的文档,pdf还未实现。
下载之后,如下图,四种方式

方案二:Apipost
Apipost 是一款功能强大的 API 调试与管理工具,集 API 设计、调试、文档生成等多种功能于一体,能够帮助开发者更高效地进行 API 相关的开发与测试工作。
接口编写完成之后,打开Apipost,对已完成的接口添加测试

现在对demo目录中的接口进行导出
点击demo项目右侧三个点,分享,复制地址


到达接口文档待导出界面

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

生成具体md文档

两者对比
| 生成时间 | 作者名称 | 项目名称 | 接口名称 | 请求参数 | 请求示例 | 请求方式 | 响应参数 | 响应示例 | 生成md | |
|---|---|---|---|---|---|---|---|---|---|---|
| 方案一 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 方案二 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
