NSWAG: Swagger/Openapi Toolchain для .NET, ASP.NET CORE и TYPESCRIPT
NSWAG | Njsonschema | Апимундо | Namotion.reflection
Объявление Apimundo: система документации API, основанная на NSWAG и NJSonschema?
NSWAG - это Swagger/OpenAPI 2.0 и 3.0 инструмент для .NET, .NET CORE, WEB API, CORE ASP.NET, TypeScript (jQuery, Angularjs, Angular 2+, Aurelia, NockoutJs и других) и других платформ, написанных в C#. Спецификация OpenAPI/Swagger использует схему JSON и JSON для описания RESTFUL WEB API. Проект NSWAG предоставляет инструменты для создания спецификаций OpenAPI из существующих контроллеров веб -API ASP.NET и клиентского кода из этих спецификаций OpenAPI.
Проект сочетает в себе функциональность Swashbuckle (Generation OpenAPI/Swagger) и AutoRest (Generation Generation) в одном инструменте (эти две LIB не нужны). Таким образом, можно избежать многих несовместимых, и функции, которые не очень хорошо описываются в спецификации OpenAPI или схемы JSON, лучше поддерживаются (например, наследование, перечисление и обработка ссылки). Проект NSWAG в значительной степени использует NJSonschema для .NET для обработки схемы JSON и C#/TypeScript Class/Generation.

Проект разрабатывается и поддерживается Rico Suter и другими участниками.
Функции
- Создание спецификаций Swagger 2.0 и OpenAPI 3.0 от контроллеров C# ASP.NET (CORE)
- Обывание спецификаций через промежуточное программное обеспечение ASP.NET (CORE), опционально с Swagger UI или REDOC
- Создание C# или TypeScript Clients/Proxies из этих спецификаций
- Все может быть автоматизировано с помощью CLI (распределено через инструмент Nuget или Build Target; или NPM)
- CLI настроен через файл JSON или NSWAGSTUDIO Windows
Способы использования инструмента
- Простой в использовании GUI Windows, NSWAGSTUDIO
- Используя openapi или openapi UI OWIN и ASP.NET CORE MIDEDWARES (также обслуживает пользовательский интерфейс Swagger) (рекомендуется)
- Через командную строку (поддержка Windows, Mac и Linux через моно или .NET Core Console Binary, также через пакет NPM)
- В вашем коде C#, через Nuget
- В ваших целях MSBuild
- С тегами ServiceProjectreference в вашем .csproj (Предварительный просмотр)
- В ваших функциях Azure V2 (внешний проект может не использовать последнюю версию NSWAG)
Учебные пособия
- Добавить NSWAG в ваше приложение ASP.NET Core
- Интегрируйте инструмент NSWAG в свой проект ASP.Net Web API
- Сгенерировать клиент Angular TypeScript из существующей веб -сборки ASP.NET Web API
- Видеоролик: Как интегрировать NSWAG в свой проект ASP.NET Core Web API (5 минут)
Генераторы OpenAPI/Swagger
- ASP.NET WEB API ASSEMBLY TO OPENAPI (поддерживает .NET CORE)
- Aspnetcoreopenapidocumentgenerator
- Webapiopenapidocumentgenerator
- Генерирует спецификацию OpenAPI для контроллеров веб -API
- WebApitoopenapicommand
- Генерирует спецификацию OpenAPI для контроллеров во внешней сборке веб -API
- Также поддерживает загрузку сборок .NET Core Assemblies
- Typestoopenapicommand
- Генерирует спецификацию OpenAPI, содержащую только типы из .NET Assemblies
Кодовые генераторы
- Csharp Client
- Csharpclientgenerator
- Генерирует клиентов C# из спецификации OpenAPI
- Генерирует POCO или классы, реализующие INOTIFYPORPERTYCHANGED SUPPLING DTOS
- Сгенерированные клиенты могут быть использованы с полным .NET, .NET CORE, XAMARIN и .NET STANDANCE 1.4 в целом
- Контролеры CSHARP (контракт First/Schema First Development)
- Csharpcontrollergenerator
- Сгенерирует веб -контроллеры API на основе спецификации OpenAPI (ASP.NET Web API и Core ASP.NET)
- Типовой клиент
- TypeScriptClientGenerator
- Генерирует клиентов TypeScript из спецификации OpenAPI
- Доступные шаблоны/поддерживаемые библиотеки:
- Jquery с обратными обращениями,
JQueryCallbacks - JQuery с обещаниями
JQueryPromises - Angularjs с использованием $ http,
AngularJS - Угловой (v2+) с использованием HTTP -службы,
Angular - Window.fetch API и ES6 Обещания,
Fetch (используйте этот шаблон в вашем приложении React/Redux) - Aurelia, используя HttpClient из Aurelia-ketch-client,
Aurelia (на основе шаблона выбора) -
Axios (Предварительный просмотр)
Загрузки
- Скачать последнюю NSWAGSTUDIO MSI SALTERSER (NSWAGSTUDIO.MSI) (приложение Windows Desktop)
- Скачать последние инструменты командной строки NSWAG и NSWAGSTUDIO (NSWAG.ZIP)
Пакеты NPM
- NSWAG: инструменты командной строки (.NET и .NET CORE) распределены как пакет NPM
Nuget Packages
Спецификация
- NSWAG.CORE
- Классы считывателей и писателей OpenApi / Swagger, см. OpenApidocument (.net Standard 1.0 / 2.0 и .net 4.5)
- Nswag.core.yaml (.net Standard 1.3 / 2.0 и .net 4.5)
- Расширения для чтения и написания спецификаций YAML OpenAPI
- NSWAG.Annotations (.NET Стандарт 1.0 / 2.0 и .NET 4.5)
- Атрибуты для украшения контроллеров Web API для управления генерацией OpenAPI
Открытое поколение
- NSWAG.Generation (.NET Стандарт 1.0 / 2.0 и .NET 4.5)
- Классы для создания спецификаций OpenAPI
- Nswag.generation.webapi (.net Standard 1.0 / 2.0 и .net 4.5)
- Классы для генерации спецификаций OpenAPI от контроллеров Web API см.
- Nswag.generation.aspnetcore (.net Standard 1.6 / 2.0 и .net 4.5.1)
- (Экспериментальный) классы для генерации спецификаций OpenAPI от контроллеров ASP.NET Core MVC с использованием ApiexPlorer
Генерация кода
- NSWAG.Codegeneration (.NET Стандарт 1.3 / 2.0 / .NET 4.5.1)
- Базовые классы для генерации клиентов из спецификаций OpenAPI
- Nswag.codegeneration.csharp (.net Standard 1.3 и .net 4.5.1)
- Занятия для генерации клиентов C# из спецификаций OpenAPI см.
- Nswag.codegeneration.typescript (.net Standard 1.3 и .net 4.5.1)
- Классы для генерации клиентов TypeScript из спецификаций OpenAPI см. TypeScriptClientGenerator
ASP.NET и ASP.NET CORE
- Nswag.aspnetcore (.net Standard 1.6 / 2.0 и .net 4.5.1+)
- Nswag.aspnet.owin (.net 4.5+)
- ASP.NET CORE/OWIN MIDENTWARES для обслуживания спецификаций OpenAPI и Swagger UI
- Nswag.aspnet.webapi (.net 4.5+)
- Фильтр веб -API ASP.NET, который сериализует исключения (jsonexceptionFilterAttribute)
Frontends
- NSWAG.AssemblyLoader (.NET Стандарт 1.6 / 2.0 и .NET 4.5.1):
- Классы для загрузки сборки в изолированном приложении и создании спецификаций OpenAPI от контроллеров веб -API
- Nswag.commands (.net стандарт 1.6 / 2.0 и .net 4.5.1+):
- Команды для реализаций инструмента командной строки и пользовательского интерфейса
- Nswag.msbuild (msbuild .targets):
- Добавляет файл .targets в ваш проект Visual Studio, чтобы вы могли запустить инструмент командной строки NSWAG в цели MSBUILD, см. MSBuild
- Nswag.consolecore (.net Core 1.0, 1.1, 2,0, 2,1 и 2,2):
- Инструмент командной строки для .NET CORE (
dotnet nswag ) -
<DotNetCliToolReference Include="NSwag.ConsoleCore" Version="..." />
- NSWAGSTUDIO (шоколад, окна):
- Пакет для установки инструментов NSWAGSTUDIO и командной линии через шоколадный
Ci Nuget Feed
https://www.myget.org/f/nswag/api/v3/index.json
Пакеты Nuget могут потребовать пакета Microsoft.netcore.portable.compatibility на целевых показателях .NET Core/UWP (если MSCORLIB отсутствует).

Использование в C#
Чтобы зарегистрировать Middlewares, чтобы генерировать спецификацию OpenAPI и отображать пользовательский интерфейс, зарегистрируйте NSWAG в Startup.cs :
public class Startup
{
.. .
public void ConfigureServices ( IServiceCollection services )
{
services . AddOpenApiDocument ( ) ; // add OpenAPI v3 document
// services.AddSwaggerDocument(); // add Swagger v2 document
}
public void Configure ( IApplicationBuilder app , IHostingEnvironment env , ILoggerFactory loggerFactory )
{
.. .
app . UseOpenApi ( ) ; // serve OpenAPI/Swagger documents
app . UseSwaggerUi ( ) ; // serve Swagger UI
app . UseReDoc ( ) ; // serve ReDoc UI
}
} Следующий код показывает, как прочитать спецификацию OpenAPI/Swagger и генерировать классы клиентов C#, чтобы вызвать описанные веб -сервисы:
var document = await OpenApiDocument . FromFileAsync ( "openapi.json" ) ;
var clientSettings = new CSharpClientGeneratorSettings
{
ClassName = "MyClass" ,
CSharpGeneratorSettings =
{
Namespace = "MyNamespace"
}
} ;
var clientGenerator = new CSharpClientGenerator ( document , clientSettings ) ;
var code = clientGenerator . GenerateFile ( ) ; Проверьте проект Wiki для получения дополнительной информации.
NSWAGSTUDIO
Генераторы можно использовать в удобном и простом графическом интерфейсе Windows под названием Nswagstudio:
Спонсоры, поддержка и консалтинг
Компании или частные лица, которые заплатили значительную сумму за реализацию, исправление проблем, поддержки или спонсоров, перечислены ниже. Спасибо за поддержку этого проекта! Вы также можете стать финансовым участником:
- Спонсор основной участник Rico Suter через GitHub
- Спонсорский проект через Open Collective для NSWAG
Пожалуйста, свяжитесь с Rico Suter для оплачиваемого консалтинга и поддержки.
Участники
Этот проект существует благодаря всем людям, которые вносят свой вклад. [Способствовать].
Спонсоры
Поддержите этот проект, став спонсором. Ваш логотип будет отображаться здесь со ссылкой на ваш сайт.
Лучшие спонсоры:
Спонсоры:
Покровители
Спасибо всем нашим покровителям!