ERPTurbo_Poster/tests/test-swagger.js
shenyifei dc940d2598 feat(api): 添加海报和PDF生成功能
- 新增海报生成接口,支持从网页URL或HTML内容生成海报图像
- 新增PDF生成接口,支持从网页URL或HTML内容生成PDF文档
- 添加Swagger API文档注释,完善接口描述和参数说明
- 实现HTML内容参数支持,允许直接传入HTML结构生成海报/PDF
- 添加输入验证和标准化响应格式
- 引入DOMPurify库对HTML内容进行安全过滤
- 更新环境变量配置,支持API密钥认证和CORS设置
- 优化上传逻辑,统一返回标准响应结构
- 添加构建脚本支持Docker镜像打包和推送
2025-11-20 17:51:35 +08:00

55 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 测试Swagger规范生成
*/
import swaggerJsdoc from 'swagger-jsdoc';
import fs from 'fs';
const options = {
definition: {
openapi: '3.0.0',
info: {
title: 'ERPTurbo_Poster API',
version: '1.0.0',
description: '海报和PDF生成服务API文档',
},
servers: [
{
url: 'http://localhost:3000',
description: '开发服务器'
}
]
},
apis: ['./server.mjs', './lib/routes.js'], // 包含API注释的文件
};
try {
const specs = swaggerJsdoc(options);
console.log('✅ Swagger规范生成成功');
console.log(`📊 发现 ${specs.paths ? Object.keys(specs.paths).length : 0} 个API端点`);
// 保存生成的规范到文件,以便查看
fs.writeFileSync('./swagger.json', JSON.stringify(specs, null, 2));
console.log('📄 Swagger规范已保存到 swagger.json');
// 验证关键端点是否存在
const paths = specs.paths;
if (paths['/api/v1/poster'] && paths['/api/v1/poster'].post) {
console.log('✅ 海报API端点文档已生成');
} else {
console.log('❌ 海报API端点文档未找到');
}
if (paths['/api/v1/pdf'] && paths['/api/v1/pdf'].post) {
console.log('✅ PDF API端点文档已生成');
} else {
console.log('❌ PDF API端点文档未找到');
}
if (paths['/status'] && paths['/status'].get) {
console.log('✅ 健康检查API端点文档已生成');
} else {
console.log('❌ 健康检查API端点文档未找到');
}
} catch (error) {
console.error('❌ Swagger规范生成失败:', error.message);
}