Repolode
RicoSuter

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

    Установите пакеты NuGet NSwag в проект ASP.NET Core (например, NSwag.AspNetCore)

  2. 2

    Зарегистрируйте NSwag в Startup.cs с помощью AddOpenApiDocument, затем вызовите UseOpenApi и UseSwaggerUi

  3. 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 обновляется ежедневно.

Похожие проекты

Набор инструментов с открытым исходным кодом для OpenAPI/Swagger: интерактивная справка по API, API-клиент с приоритетом работы офлайн и интеграции со многими веб-фреймворками.

16,4 тыс.+29 за неделю967TypeScriptMITОбновлён 8 часов назад