linux

在Linux上如何配置Swagger以支持多种语言

小樊
49
2025-08-11 01:20:48
栏目: 智能运维

在Linux上配置Swagger以支持多种语言,通常涉及到以下几个步骤:

  1. 安装Swagger工具: 首先,你需要在你的Linux系统上安装Swagger工具。这可以通过npm(Node.js的包管理器)来完成。

    npm install -g swagger-jsdoc swagger-ui-express
    
  2. 创建Swagger配置文件: 创建一个Swagger配置文件(通常是swagger.js),在这个文件中定义你的API规范。你可以使用YAML或JSON格式来编写这个文件。

    const swaggerJsDoc = require('swagger-jsdoc');
    
    const swaggerOptions = {
      swaggerDefinition: {
        info: {
          title: 'My API',
          description: 'API documentation for my application',
          version: '1.0.0',
          contact: {
            name: 'Your Name'
          },
          servers: ['http://localhost:3000']
        }
      },
      apis: ['./routes/*.js'] // 指向你的API路由文件
    };
    
    const swaggerDocs = swaggerJsDoc(swaggerOptions);
    module.exports = swaggerDocs;
    
  3. 集成Swagger UI: 在你的Express应用中集成Swagger UI,这样用户就可以通过浏览器查看和测试你的API。

    const express = require('express');
    const swaggerUi = require('swagger-ui-express');
    const swaggerDocs = require('./swagger');
    
    const app = express();
    
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
    
    // 其他路由和中间件
    
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
    
  4. 支持多语言: Swagger UI本身支持多语言,你可以通过设置swaggerUi.setup函数的deepLinking选项来启用多语言支持。

    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs, {
      deepLinking: true,
      presets: [
        swaggerUi.presets.apis,
        swaggerUi.presets.promises
      ],
      plugins: [
        swaggerUi.plugins.DownloadUrl
      ],
      layout: "StandaloneLayout",
      customCss: "./custom.css", // 你可以添加自定义CSS来调整布局
      swaggerOptions: {
        customSiteTitle: 'My API Documentation',
        customFooter: '© 2023 My Company'
      }
    }));
    
  5. 本地化Swagger文档: 如果你需要为不同的用户提供不同语言的Swagger文档,你可以创建多个Swagger配置文件,每个文件对应一种语言,并在服务器端根据用户的语言偏好来选择合适的配置文件。

    // swagger-en.js (英文)
    const swaggerJsDoc = require('swagger-jsdoc');
    
    const swaggerOptions = {
      // 英文配置
    };
    
    module.exports = swaggerJsDoc(swaggerOptions);
    
    // swagger-zh.js (中文)
    const swaggerJsDoc = require('swagger-jsdoc');
    
    const swaggerOptions = {
      // 中文配置
    };
    
    module.exports = swaggerJsDoc(swaggerOptions);
    

    然后在你的Express应用中根据用户的语言偏好来选择合适的Swagger配置文件。

    const express = require('express');
    const swaggerUi = require('swagger-ui-express');
    const swaggerDocsEn = require('./swagger-en');
    const swaggerDocsZh = require('./swagger-zh');
    
    const app = express();
    
    const userLanguage = 'zh'; // 假设这是用户的语言偏好
    
    let swaggerDocs;
    if (userLanguage === 'zh') {
      swaggerDocs = swaggerDocsZh;
    } else {
      swaggerDocs = swaggerDocsEn;
    }
    
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
    
    // 其他路由和中间件
    
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
    

通过以上步骤,你可以在Linux上配置Swagger以支持多种语言。记得根据你的具体需求调整配置和代码。

0
看了该问题的人还看了