Repolode
RicoSuter

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. 1

    在 ASP.NET Core 项目中安装 NSwag NuGet 包(例如 NSwag.AspNetCore)

  2. 2

    在 Startup.cs 中通过 AddOpenApiDocument 注册 NSwag,然后调用 UseOpenApi 和 UseSwaggerUi

  3. 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 数据每日更新。

相关项目