Files
webRtc/WebApp/src/swagger.ts
2026-03-01 23:41:42 +08:00

65 lines
1.6 KiB
TypeScript
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配置文件
* 用于设置API文档的基本信息和路由
*/
import * as swaggerJSDoc from 'swagger-jsdoc';
import * as swaggerUi from 'swagger-ui-express';
import { Express } from 'express';
import Options from './class/options';
/**
* 初始化Swagger
* @param app Express应用实例
* @param config 配置选项
*/
export const initSwagger = (app: Express, config: Options): void => {
// 根据配置生成服务器URL
const protocol = config.secure ? 'https' : 'http';
const port = config.port || 8080;
const serverUrl = `${protocol}://localhost:${port}`;
/**
* Swagger配置选项
*/
const swaggerOptions = {
definition: {
openapi: '3.0.0',
info: {
title: 'WebRTC Signaling API',
version: '1.0.0',
description: 'WebRTC信令服务器API文档',
contact: {
name: 'WebRTC Team',
email: 'contact@webrtc.example.com'
}
},
servers: [
{
url: serverUrl,
description: '本地开发服务器'
}
],
components: {
securitySchemes: {
sessionAuth: {
type: 'apiKey',
in: 'header',
name: 'session-id',
description: '会话ID'
}
}
},
security: [
{
sessionAuth: []
}
]
},
apis: ['./src/class/httphandler.ts', './src/signaling.ts']
};
const swaggerSpec = swaggerJSDoc(swaggerOptions);
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
console.log(`Swagger文档已初始化访问 ${serverUrl}/api-docs 查看`);
};