首页主机资讯在Debian中使用Swagger进行API文档共享

在Debian中使用Swagger进行API文档共享

时间2025-12-03 16:38:04发布访客分类主机资讯浏览653
导读:在 Debian 上使用 Swagger 进行 API 文档共享 一 方案总览 在 Debian 上共享 API 文档,常用做法有三类: 将 Swagger UI 与后端服务集成,动态提供文档页面; 使用 openapi-generat...

在 Debian 上使用 Swagger 进行 API 文档共享

一 方案总览

  • Debian 上共享 API 文档,常用做法有三类:
    1. Swagger UI 与后端服务集成,动态提供文档页面;
    2. 使用 openapi-generatorOpenAPI/Swagger 规范生成静态 HTML 文档,用 Nginx/Apache 托管;
    3. 直接用 Docker 运行 Swagger UI 容器,零侵入接入现有服务。
  • 术语说明:业界常把 OpenAPI(原 Swagger 规范)与 Swagger UI(展示层)混称。本文以 OpenAPI 3.0 为主,同时给出 Swagger 2.0 写法示例,便于迁移与兼容。

二 方案一 集成到 Node.js Express

  • 安装依赖
    • 安装 Node.js/npm:sudo apt update & & sudo apt install -y nodejs npm
    • 初始化项目并安装:npm init -y & & npm i express swagger-ui-express swagger-jsdoc
  • 最小可用示例
    • 创建规范文件:openapi.yaml
      openapi: 3.0.0
      info:
        title: Sample API
        version: 1.0.0
      paths:
        /hello:
          get:
            summary: 返回问候
            responses:
              '200':
                description: OK
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        message:
                          type: string
      
    • 创建服务:app.js
      const express = require('express');
          
      const swaggerUi = require('swagger-ui-express');
          
      const YAML = require('yamljs');
          
      const app = express();
          
      const swaggerDocument = YAML.load('./openapi.yaml');
          
      
      app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
          
      app.get('/hello', (req, res) =>
       res.json({
       message: 'Hello, Swagger on Debian' }
          ));
          
      
      const PORT = process.env.PORT || 3000;
          
      app.listen(PORT, () =>
       console.log(`Server on :${
      PORT}
          , docs at /api-docs`));
          
      
    • 运行与访问
      • 启动:node app.js
      • 文档:http://< 服务器IP或域名> :3000/api-docs
  • 说明
    • 也可使用 swagger.json;若采用 swagger-jsdoc,可在代码中以注释驱动生成规范,减少手写 YAML/JSON 的成本。

三 方案二 生成静态文档并用 Nginx 托管

  • 安装工具
    • sudo apt update & & sudo apt install -y openapi-generator
  • 生成静态站点
    • 生成 HTML:openapi-generator generate -i openapi.yaml -g html -o ./docs
  • 托管与访问
    • ./docs 放到 Nginx/Apache 静态目录(如 /var/www/html/docs),配置站点后访问:http://< 域名或IP> /docs/index.html
  • 适用场景
    • 与后端解耦、便于发布到 对象存储/CDN、权限由反向代理或网关统一控制。

四 方案三 使用 Docker 快速部署 Swagger UI

  • 拉取并运行
    • docker run -d -p 8080:8080 swaggerapi/swagger-ui
  • 自定义规范文件
    • openapi.yaml 挂载到容器内,并通过环境变量指定 URL:
      docker run -d -p 8080:8080 \
        -e SWAGGER_JSON=/spec/openapi.yaml \
        -v $(pwd)/openapi.yaml:/spec/openapi.yaml \
        swaggerapi/swagger-ui
      
    • 访问:http://< 服务器IP> :8080
  • 优点
    • 部署快、隔离性好,适合演示、内网共享与 CI/CD 产物发布。

五 安全与运维建议

  • 访问控制
    • 内网环境可结合 反向代理/网关 做鉴权;公网建议启用 Basic Auth、JWT 或 OAuth2,并在 Swagger UI 配置 securityDefinitionssecurity 字段。
  • 版本与规范
    • 新项目优先采用 OpenAPI 3.0;存量项目可在 Swagger 2.0OpenAPI 3.0 间平稳过渡(必要时使用转换工具)。
  • 静态托管与缓存
    • 静态文档建议设置 Cache-Control(如:public, max-age=3600),并在规范更新时变更文件名或路径以强制刷新。
  • 与后端一致性
    • 采用代码注解或规范优先的方式,减少手工维护;上线前用 Swagger UI Try it outCI 校验确保文档与实现一致。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 在Debian中使用Swagger进行API文档共享
本文地址: https://pptw.com/jishu/762492.html
ubuntu如何更新composer Debian系统中Swagger API文档版本控制

游客 回复需填写必要信息