# @apidevtools/swagger-express-middleware 中文文档

规范地址：https://npmcn.com/package/%40apidevtools/swagger-express-middleware/

版本：4\.0\.2
npm 元数据更新时间：2026-01-24T16:02:51.490Z
中文译文更新时间：2026-11-06T10:06:13.441Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40apidevtools/swagger-express-middleware
原文对照：https://npmcn.com/package/%40apidevtools/swagger-express-middleware/?lang=original
项目主页：https://apitools.dev/swagger-express-middleware/
源码仓库：https://github.com/APIDevTools/swagger-express-middleware

弃用说明：This package has been abandoned\. Please find an actively maintained alternative on https://openapi\.tools/

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：182 kB，34 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=10
- 运行依赖：11 个
- peer 依赖：express 4\.x
- 首次发布：2020-03-15T12:40:12.063Z
- 最新版本发布：2020-08-01T09:43:43.883Z
- 近 30 天下载量：6330（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 0 个）

## 中文简介

Swagger 中间软件和快取模拟器

## 安装

```sh
npm install @apidevtools/swagger-express-middleware
```

也可以使用：`pnpm add @apidevtools/swagger-express-middleware`、`yarn add @apidevtools/swagger-express-middleware`、`bun add @apidevtools/swagger-express-middleware`

## README

# Swagger Express 中间软件

### Swagger 2.0 中间软件和为 Express.js 所模拟

[![Cross-Platform Compatibility](https://apitools.dev/img/badges/os-badges.svg)](https://github.com/APIDevTools/swagger-express-middleware/actions) [![Build Status](https://github.com/APIDevTools/swagger-express-middleware/workflows/CI-CD/badge.svg?branch=master)](https://github.com/APIDevTools/swagger-express-middleware/actions)

[![Coverage Status](https://coveralls.io/repos/github/APIDevTools/swagger-express-middleware/badge.svg?branch=master)](https://coveralls.io/github/APIDevTools/swagger-express-middleware) [![Tested on APIs.guru](https://api.apis.guru/badges/tested_on.svg)](https://apis.guru/browse-apis/) [![Dependencies](https://david-dm.org/APIDevTools/swagger-express-middleware.svg)](https://david-dm.org/APIDevTools/swagger-express-middleware)

[![npm](https://img.shields.io/npm/v/@apidevtools/swagger-express-middleware.svg)](https://www.npmjs.com/package/@apidevtools/swagger-express-middleware) [![License](https://img.shields.io/npm/l/@apidevtools/swagger-express-middleware.svg)](https://npmcn.com/package/%40apidevtools/swagger-express-middleware/LICENSE) [![Buy us a tree](https://img.shields.io/badge/Treeware-%F0%9F%8C%B3-lightgreen)](https://plant.treeware.earth/APIDevTools/swagger-express-middleware)

## 特征

-   **在 JSON 或 YAML 中支持 Swagger 2.0 规格**  
    Swagger Express 中间软件的使用 [斯瓦格- 帕塞尔](https://github.com/APIDevTools/swagger-parser) 以解析、验证和调试Swagger文件。 您甚至可以使用 : `$ref` 指针.
    
-   **彻底测试**  
    超过1000个单位测试和集成测试,编码覆盖率达到100%. 测试过 [**超过1500个真实世界的API**](https://apis.guru/browse-apis/) 来自谷歌,微软,Facebook,Spotify等. 所有测试都在Mac,Linux和Windows上运行,使用所有LTS版本的节点.
    
-   [**模拟中间软件**](https://apitools.dev/swagger-express-middleware/docs/middleware/mock.html)  
    **完全功能模拟** 用于您 API 中每个操作的执行,包括数据持续性,所有操作 **零码!** 这是一个很好的方法来测试你的API 当你写它, 或者快速演示和POC。 你甚至可以用自己的逻辑和数据来扩展模拟中间软件,以填补任何空白.
    
-   [**元数据中间软件**](https://apitools.dev/swagger-express-middleware/docs/middleware/metadata.html)  
    以斯瓦格定义中的所有相关信息对每项请求进行注释. 路径 操作 参数 安全要求 都很容易进入 `req.swagger`。 。 。 .
    
-   [**解析请求中间软件**](https://apitools.dev/swagger-express-middleware/docs/middleware/parseRequest.html)  
    根据您的 Swagger API 定义,分析收到的请求,并将所有数据转换为正确的数据类型.
    
-   [**验证请求中间软件**](https://apitools.dev/swagger-express-middleware/docs/middleware/validateRequest.html)  
    确保每个请求都符合您的 Swagger API 定义,或者在需要时返回相应的 HTTP 错误代码 。 当然,你可以捕捉到任何验证错误,并随意处理.
    
-   [**CORS 中间软件**](https://apitools.dev/swagger-express-middleware/docs/middleware/CORS.html)  
    在每个请求中添加相应的 CORS 头并自动响应 CORS 飞行前请求,这些都符合您的 Swagger API 定义 .
    
-   [**文件中间软件**](https://apitools.dev/swagger-express-middleware/docs/middleware/files.html)  
    以 JSON 或 YAML 格式服务 Swagger API 文件, 这样可以使用前端工具, 如 [Swagger 用户界面](http://www.swagger.io/), (中文(简体) ), [Swagger 编辑器](http://editor.swagger.io/),以及 [邮差](http://getpostman.com/)。 。 。 .
    

## 安装和使用

使用 [无](https://docs.npmjs.com/about-npm/)。 。 。 .

```bash
npm install @apidevtools/swagger-express-middleware
```

那就用在你们身上 [节点.js](http://nodejs.org/) 像这样的脚本 :

```javascript
const express = require('express');
const createMiddleware = require('@apidevtools/swagger-express-middleware');

let app = express();

createMiddleware('PetStore.yaml', app, function(err, middleware) {
    // Add all the Swagger Express Middleware, or just the ones you need.
    // NOTE: Some of these accept optional options (omitted here for brevity)
    app.use(
        middleware.metadata(),
        middleware.CORS(),
        middleware.files(),
        middleware.parseRequest(),
        middleware.validateRequest(),
        middleware.mock()
    );

    app.listen(8000, function() {
        console.log('The PetStore sample is now running at http://localhost:8000');
    });
});
```

## 样本行走( L)

Swagger Express Middleware 有两个样本使用 [Swagger 宠物存储 API](https://github.com/APIDevTools/swagger-express-middleware/blob/master/samples/PetStore.yaml)。 。 。 .

#### 样本1

这个样本显示了Swagger Express Middleware最简单的用法. 它只是创建了一个新的Express应用程序,并在不改变任何选项的情况下添加了所有的Swagger中间软件,并且不添加自定义的中间软件.

-   [源代码](https://github.com/APIDevTools/swagger-express-middleware/blob/master/samples/sample1.js)
-   [走过去](https://apitools.dev/swagger-express-middleware/docs/walkthroughs/running.html)

#### 样本2

这个样本展示了Swagger Express Middleware的一些更高级的功能,例如设置了几个选项,初始化了模拟数据存储,并增加了自定义的中间软件逻辑.

-   [源代码](https://github.com/APIDevTools/swagger-express-middleware/blob/master/samples/sample2.js)
-   [走过去](https://apitools.dev/swagger-express-middleware/docs/walkthroughs/walkthrough2.html)

## 捐款

我欢迎任何贡献、增强和错误修正. [打开一个问题](https://github.com/APIDevTools/swagger-express-middleware/issues) 关于 GitHub 和 [提交拉动请求](https://github.com/APIDevTools/swagger-express-middleware/pulls)。 。 。 .

#### 建筑物/试验

要在您的计算机上本地构建/测试项目:

1.  **克隆这个还原**  
    `git clone https://github.com/APIDevTools/swagger-express-middleware.git`
    
2.  **安装依赖关系**  
    `npm install`
    
3.  **运行测试**  
    `npm test`
    
4.  **运行软件样本**  
    `npm start`
    

## 许可证

Swagger Express Middleware 是100%的自由和开源软件,在 [麻省理工学院许可证](https://npmcn.com/package/%40apidevtools/swagger-express-middleware/LICENSE)随意使用.

这个软件包是 [树件](http://treeware.earth/)如果你把它用于生产,那么我们要求你 [**给世界买一棵树**](https://plant.treeware.earth/APIDevTools/swagger-express-middleware) 感谢我们的工作。 将会为当地家庭创造就业机会.

## 谢谢

感谢这些优秀的公司对开源开发商的支持 QQ

[![Travis CI](https://jstools.dev/img/badges/travis-ci.svg)](https://travis-ci.com/) [![SauceLabs](https://jstools.dev/img/badges/sauce-labs.svg)](https://saucelabs.com/) [![Coveralls](https://jstools.dev/img/badges/coveralls.svg)](https://coveralls.io/)

## 常见问题

### @apidevtools/swagger-express-middleware 是什么？

Swagger 中间软件和快取模拟器注意：该包已被作者标记为弃用——This package has been abandoned\. Please find an actively maintained alternative on https://openapi\.tools/

### 如何安装 @apidevtools/swagger-express-middleware？

在项目目录运行 npm install @apidevtools/swagger-express-middleware，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：express（4\.x）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @apidevtools/swagger-express-middleware 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/apidevtools\_\_swagger-express-middleware 是否存在。

### @apidevtools/swagger-express-middleware 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @apidevtools/swagger-express-middleware 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=10。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @apidevtools/swagger-express-middleware 可以商用吗？

@apidevtools/swagger-express-middleware 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @apidevtools/swagger-express-middleware 的下载量有多少？

根据 npm 官方下载统计，@apidevtools/swagger-express-middleware 在 2026/10/06 – 2026/11/04 这 30 天内被下载 6,330 次，日均约 211 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @apidevtools/swagger-express-middleware 还在维护吗？

最新版本 4\.0\.2 发布于 2020/08/01（6 年前）；至今共发布 6 个版本，其中过去 12 个月发布了 0 个；首次发布于 2020/03/15。作者已将其标记为弃用，新项目建议寻找替代方案。

