Генерирует TypeScript-типы по схемам OpenAPI 3 и предоставляет типобезопасный fetch-клиент на их основе.
RicoSuter/NSwag
Набор инструментов Swagger/OpenAPI для .NET и ASP.NET Core: генерирует спецификации API по контроллерам, а C#- и TypeScript-клиенты — по спецификациям.
- Звёзды
- 7,368
- Форки
- 1,364
- Открытые issues
- 2,068
- Последний коммит
- 2 месяца назад
Что это?
NSwag — набор инструментов для работы со спецификациями OpenAPI (Swagger) в проектах на .NET и TypeScript. Он умеет генерировать документы OpenAPI 2.0 и 3.0 по контроллерам ASP.NET Web API и ASP.NET Core, а также публиковать их через middleware вместе со Swagger UI или ReDoc.
NSwag также читает существующие спецификации OpenAPI и генерирует по ним клиентский код на C# или TypeScript. Варианты вывода на TypeScript поддерживают несколько платформ, включая Angular, AngularJS, Aurelia, jQuery, Axios и браузерный Fetch API. Для работы с JSON Schema и генерации типов проект использует NJsonSchema.
NSwag можно запускать из командной строки (инструмент распространяется как NuGet tool или npm-пакет), через цели MSBuild или в Windows GUI NSwagStudio. Конфигурация хранится в JSON-файле.
Ключевые возможности
- 01Генерирует документы Swagger 2.0 и OpenAPI 3.0 по контроллерам ASP.NET (Core).
- 02Публикует спецификации API через middleware со Swagger UI или ReDoc.
- 03Генерирует клиенты на C# и TypeScript по спецификациям OpenAPI.
- 04Поддерживает несколько HTTP-шаблонов для TypeScript, включая Angular, Fetch и Axios.
- 05Запускается через CLI, MSBuild или приложение NSwagStudio для Windows.
Сценарии использования
- Документирование существующего ASP.NET Core Web API с помощью OpenAPI и Swagger UI.
- Генерация типизированного клиента на C# для вызова REST-сервиса из другого проекта на .NET.
- Создание клиента на TypeScript для Angular или Fetch по спецификации API бэкенда.
- Автоматизация генерации клиентского кода в сборочном конвейере с помощью MSBuild или CLI.
Быстрый старт
- 1
Установите пакеты NuGet NSwag в проект ASP.NET Core (например, NSwag.AspNetCore)
- 2
Зарегистрируйте NSwag в Startup.cs с помощью AddOpenApiDocument, затем вызовите UseOpenApi и UseSwaggerUi
- 3
Создайте клиенты на C# или TypeScript на основе файла OpenAPI, используя примеры кода из README или NSwag CLI
Что важно знать
- NSwagStudio — настольное приложение только для Windows.
- Использование командной строки на Mac и Linux зависит от Mono или консольного бинарного файла .NET Core.
- В README генератор OpenAPI для ASP.NET Core помечен как экспериментальный.
Темы
Частые вопросы
- Что такое NSwag?
- Набор инструментов Swagger/OpenAPI для .NET и ASP.NET Core: генерирует спецификации API по контроллерам, а C#- и TypeScript-клиенты — по спецификациям. NSwag — набор инструментов для работы со спецификациями OpenAPI (Swagger) в проектах на .NET и TypeScript. Он умеет генерировать документы OpenAPI 2.0 и 3.0 по контроллерам ASP.NET Web API и ASP.NET Core, а также публиковать их через middleware вместе со Swagger UI или ReDoc.
- NSwag можно использовать бесплатно? Какая у него лицензия?
- NSwag распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- NSwag всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в NSwag — 7 сент. 2026 г..
- Для чего можно использовать NSwag?
- Документирование существующего ASP.NET Core Web API с помощью OpenAPI и Swagger UI. Генерация типизированного клиента на C# для вызова REST-сервиса из другого проекта на .NET. Создание клиента на TypeScript для Angular или Fetch по спецификации API бэкенда. Автоматизация генерации клиентского кода в сборочном конвейере с помощью MSBuild или CLI.
- Как установить NSwag?
- Установите пакеты NuGet NSwag в проект ASP.NET Core (например, NSwag.AspNetCore) Зарегистрируйте NSwag в Startup.cs с помощью AddOpenApiDocument, затем вызовите UseOpenApi и UseSwaggerUi Создайте клиенты на C# или TypeScript на основе файла OpenAPI, используя примеры кода из README или NSwag CLI
- Где скачать NSwag?
- Исходный код и инструкции по установке — на GitHub: https://github.com/RicoSuter/NSwag
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Генерирует SDK клиентов API, серверные заготовки и документацию на десятках языков и для разных фреймворков по спецификациям OpenAPI 2.0 и 3.0.
CLI-инструмент для генерации SDK клиентов API, серверных заглушек и HTML-документации по спецификации OpenAPI/Swagger.
Консольная утилита и библиотека для Go, генерирующая серверный шаблонный код, API-клиенты и модели по спецификациям OpenAPI 3.0 и 3.1.
Серверная часть для клиентов Bitwarden: API, база данных SQL Server и развёртывание менеджера паролей в Docker.
Набор инструментов с открытым исходным кодом для OpenAPI/Swagger: интерактивная справка по API, API-клиент с приоритетом работы офлайн и интеграции со многими веб-фреймворками.