- 新增海报生成接口,支持从网页URL或HTML内容生成海报图像 - 新增PDF生成接口,支持从网页URL或HTML内容生成PDF文档 - 添加Swagger API文档注释,完善接口描述和参数说明 - 实现HTML内容参数支持,允许直接传入HTML结构生成海报/PDF - 添加输入验证和标准化响应格式 - 引入DOMPurify库对HTML内容进行安全过滤 - 更新环境变量配置,支持API密钥认证和CORS设置 - 优化上传逻辑,统一返回标准响应结构 - 添加构建脚本支持Docker镜像打包和推送
55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
/**
|
||
* 测试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);
|
||
} |