1、添加swagger解析依赖包:
<dependency>
<groupId>io.swagger.parser.v3</groupId>
<artifactId>swagger-parser</artifactId>
<version>2.1.12</version>
</dependency>
2、示例代码:
package com.rlcloud.risk.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.models.*;
import io.swagger.models.parameters.Parameter;
import io.swagger.models.properties.Property;
import io.swagger.parser.SwaggerParser;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.util.List;
import java.util.Map;
/**
* @Description : Swagger转换成Excel文件
* @date 2024/3/28 17:30
* @return
* @auther xushuanglu
*/
public class SwaggerToExcel {
public static void main(String[] args) throws Exception {
// 1、获取Swagger文档
Swagger swagger = new SwaggerParser().read("http://your-swagger-url/v2/api-docs");
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Swagger API Documentation");
// 创建标题行
Row titleRow = sheet.createRow(0);
Cell titleCell1 = titleRow.createCell(0);
titleCell1.setCellValue("Path");
Cell titleCell2 = titleRow.createCell(1);
titleCell2.setCellValue("Description");
// ... 添加其他需要的列标题
Cell titleCell3 = titleRow.createCell(2);
titleCell3.setCellValue("dataType");
Cell titleCell4 = titleRow.createCell(3);
titleCell4.setCellValue("接口名称");
Cell titleCell5 = titleRow.createCell(4);
titleCell5.setCellValue("code");
int rowNum = 1;
String oldNum = "001";
// 遍历每个路径
for (String path : swagger.getPaths().keySet()) {
// 遍历每个操作
for (Map.Entry<HttpMethod, Operation> entry : swagger.getPaths().get(path).getOperationMap().entrySet()) {
Row row = sheet.createRow(rowNum);
Cell cell1 = row.createCell(0);
cell1.setCellValue(path);
Cell cell2 = row.createCell(1);
cell2.setCellValue(entry.getValue().getSummary());
// ... 填充其他需要的信息
Cell cell3 = row.c