温馨提示×

Debian系统Swagger API文档生成

小樊
49
2025-10-01 23:04:04
栏目: 智能运维

1. 准备Debian系统环境
在Debian系统上生成Swagger API文档前,需确保系统已更新并安装基础工具:

sudo apt update && sudo apt upgrade -y

根据后续选择的工具(Node.js/Java/Python),安装对应依赖(如Node.js、Java JDK、Python等)。

2. 常见工具链及生成步骤
Swagger文档生成可通过代码注解(适用于Java/Spring Boot)或配置文件+工具(适用于Node.js/Python)实现,以下是具体方案:

方案一:Node.js应用(使用swagger-jsdoc + swagger-ui-express)

适用于基于Node.js的Debian应用,通过代码注释和配置文件自动生成文档。

  • 安装工具:全局安装swagger-jsdoc(解析注释生成文档)和swagger-ui-express(集成Swagger UI):
    sudo npm install -g swagger-jsdoc swagger-ui-express
    
  • 编写Swagger配置:创建swagger.yaml(或swagger.json),定义API基本信息、端点、参数及模型(示例见下文)。
  • 集成到应用:在Express应用中引入Swagger UI,指定配置文件路径:
    const express = require('express');
    const swaggerUi = require('swagger-ui-express');
    const swaggerDocument = require('./path/to/swagger.yaml');
    const app = express();
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
    app.listen(3000, () => console.log('Server running on port 3000'));
    
  • 配置文件示例swagger.yaml):
    swagger: '2.0'
    info:
      title: Sample API
      description: A demo API for Swagger documentation
      version: 1.0.0
    host: localhost:3000
    basePath: /api
    paths:
      /users:
        get:
          summary: List all users
          responses:
            '200':
              description: An array of users
              schema:
                type: array
                items:
                  $ref: '#/definitions/User'
    definitions:
      User:
        type: object
        properties:
          id:
            type: string
          name:
            type: string
        required:
          - id
          - name
    
  • 访问文档:启动应用后,通过浏览器访问http://localhost:3000/api-docs即可查看交互式文档。

方案二:Java/Spring Boot应用(使用Swagger Codegen或SpringFox)

适用于Java生态的Debian应用,支持自动生成客户端代码和文档。

  • 方式1:Swagger Codegen(命令行生成)

    • 安装工具:下载Swagger Codegen CLI jar包:
      wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.29/swagger-codegen-cli-3.0.29.jar -O swagger-codegen-cli.jar
      
    • 生成文档:使用swagger-codegen命令生成HTML格式文档(需提前编写swagger.yaml):
      java -jar swagger-codegen-cli.jar generate -i path/to/swagger.yaml -l html2 -o path/to/output
      
    • 集成到构建流程:通过Maven/Gradle插件(如openapi-generator-maven-plugin)在构建时自动生成文档(示例见下文)。
  • 方式2:SpringFox(代码注解生成)

    • 添加依赖:在pom.xml中添加SpringFox依赖:
      <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
      </dependency>
      <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
      </dependency>
      
    • 配置Swagger:创建配置类启用Swagger:
      @Configuration
      @EnableSwagger2
      public class SwaggerConfig {
        @Bean
        public Docket api() {
          return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
            .paths(PathSelectors.any())
            .build();
        }
      }
      
    • 访问文档:启动Spring Boot应用后,访问http://localhost:8080/swagger-ui.html查看文档。

方案三:Python应用(使用Flasgger或DRF-YASG)

适用于Python生态的Debian应用(如Flask/Django),通过装饰器或配置生成文档。

  • Flask + Flasgger

    • 安装工具:创建虚拟环境并安装Flasgger:
      python3 -m venv swagger-env
      source swagger-env/bin/activate
      pip install flasgger
      
    • 编写配置:在Flask应用中初始化Flasgger,并添加API注释:
      from flask import Flask, jsonify
      from flasgger import Swagger
      app = Flask(__name__)
      swagger = Swagger(app)
      @app.route('/api/v1/hello')
      def hello():
        """This is a sample endpoint.
        ---
        responses:
          200:
            description: A greeting message
            schema:
              type: object
              properties:
                message:
                  type: string
        """
        return jsonify(message="Hello, World!")
      
    • 访问文档:启动应用后,访问http://localhost:5000/apidocs查看文档。
  • Django + DRF-YASG

    • 安装工具:安装DRF-YASG及依赖:
      pip install drf-yasg
      
    • 配置Swagger:在settings.py中添加drf_yasgINSTALLED_APPS,并创建URL路由:
      from django.urls import path
      from drf_yasg.views import get_schema_view
      from drf_yasg import openapi
      schema_view = get_schema_view(
        openapi.Info(title="Sample API", default_version='v1'),
        public=True,
        permission_classes=[]
      )
      urlpatterns = [
        path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
      ]
      
    • 访问文档:启动Django应用后,访问http://localhost:8000/swagger/查看文档。

3. 注意事项

  • 依赖兼容性:确保工具版本与应用框架兼容(如SpringFox 3.x需配合Spring Boot 2.5+)。
  • 文档更新:修改代码或配置后,需重新生成文档(如SpringFox自动更新,Swagger Codegen需重新运行命令)。
  • 安全配置:生产环境中,需限制Swagger UI的访问权限(如添加认证)。

0