从 OpenAPI 3 规范生成 TypeScript 类型,并提供基于这些类型的类型安全请求客户端。
RicoSuter/NSwag
面向 .NET、ASP.NET Core 与 TypeScript 的 Swagger/OpenAPI 工具链,可从控制器生成接口文档并生成客户端代码。
- Star
- 7,368
- Fork
- 1,363
- 未关闭 Issue
- 2,068
- 最近提交
- 2个月前
这是什么?
NSwag 是面向 .NET 和 TypeScript 项目的 OpenAPI(Swagger)工具链。它可以从 ASP.NET Web API 和 ASP.NET Core 控制器生成 OpenAPI 2.0 与 3.0 文档,并通过中间件提供 Swagger UI 或 ReDoc 页面。
反方向上,它可以读取已有的 OpenAPI 规范,生成 C# 或 TypeScript 客户端代码。TypeScript 输出支持 Angular、AngularJS、Aurelia、jQuery、Axios 以及浏览器 Fetch API 等多种模板。类型与 JSON Schema 处理基于 NJsonSchema 实现。
工具可通过命令行(以 NuGet 工具或 npm 包形式分发)、MSBuild 目标或 Windows 图形界面 NSwagStudio 使用,配置以 JSON 文件保存。
核心功能
- 01从 ASP.NET(Core)控制器生成 Swagger 2.0 与 OpenAPI 3.0 文档。
- 02通过中间件提供 Swagger UI 或 ReDoc 接口文档页面。
- 03根据 OpenAPI 规范生成 C# 与 TypeScript 客户端代码。
- 04TypeScript 客户端支持 Angular、Fetch、Axios 等多种模板。
- 05可通过命令行、MSBuild 或 Windows 图形工具 NSwagStudio 运行。
适用场景
- 为现有 ASP.NET Core Web API 添加 OpenAPI 文档与 Swagger UI。
- 在其他 .NET 项目中生成强类型 C# 客户端调用 REST 服务。
- 根据后端接口规范生成 Angular 或 Fetch 风格的 TypeScript 客户端。
- 在构建流水线中通过 MSBuild 或命令行自动生成客户端代码。
快速上手
- 1
在 ASP.NET Core 项目中安装 NSwag NuGet 包(例如 NSwag.AspNetCore)
- 2
在 Startup.cs 中通过 AddOpenApiDocument 注册 NSwag,然后调用 UseOpenApi 和 UseSwaggerUi
- 3
使用 README 中的代码示例或 NSwag 命令行工具,从 OpenAPI 文件生成 C# 或 TypeScript 客户端
使用前须知
- NSwagStudio 是仅限 Windows 的桌面应用。
- 在 Mac 和 Linux 上使用命令行工具需要依赖 Mono 或 .NET Core 控制台版本。
- README 中将 ASP.NET Core OpenAPI 生成器标注为实验性功能。
标签
常见问题
- NSwag 是什么?
- 面向 .NET、ASP.NET Core 与 TypeScript 的 Swagger/OpenAPI 工具链,可从控制器生成接口文档并生成客户端代码。 NSwag 是面向 .NET 和 TypeScript 项目的 OpenAPI(Swagger)工具链。它可以从 ASP.NET Web API 和 ASP.NET Core 控制器生成 OpenAPI 2.0 与 3.0 文档,并通过中间件提供 Swagger UI 或 ReDoc 页面。
- NSwag 可以免费使用吗?用的什么许可证?
- NSwag 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- NSwag 还在维护吗?
- 半年内有更新。NSwag 最近一次提交是在 2026年9月7日。
- NSwag 适合用来做什么?
- 为现有 ASP.NET Core Web API 添加 OpenAPI 文档与 Swagger UI。 在其他 .NET 项目中生成强类型 C# 客户端调用 REST 服务。 根据后端接口规范生成 Angular 或 Fetch 风格的 TypeScript 客户端。 在构建流水线中通过 MSBuild 或命令行自动生成客户端代码。
- NSwag 怎么安装和运行?
- 在 ASP.NET Core 项目中安装 NSwag NuGet 包(例如 NSwag.AspNetCore) 在 Startup.cs 中通过 AddOpenApiDocument 注册 NSwag,然后调用 UseOpenApi 和 UseSwaggerUi 使用 README 中的代码示例或 NSwag 命令行工具,从 OpenAPI 文件生成 C# 或 TypeScript 客户端
- 在哪里获取 NSwag?
- 源代码和安装说明在 GitHub 上:https://github.com/RicoSuter/NSwag
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
根据 OpenAPI 规范自动生成多种语言的 API 客户端 SDK、服务端桩代码和文档。
根据 OpenAPI/Swagger 定义生成 API 客户端 SDK、服务端桩代码和文档的命令行工具。
一个 Go 命令行工具和库,根据 OpenAPI 3.0/3.1 规范生成服务端框架代码、API 客户端和数据模型。
Bitwarden 密码管理器的后端服务,提供 API、SQL Server 数据库与 Docker 部署支持。
开源的 OpenAPI/Swagger 工具集,提供交互式 API 文档、离线优先的 API 客户端和多种 Web 框架集成。