NSWAG : .NET 용 Swagger/OpenApi 도구 체인, ASP.NET Core 및 TypeScript
nswag | Njsonschema | Apimundo | namotion. 반사
APIMUNDO 발표 : NSWAG 및 NJSONSCHEMA를 기반으로 한 API 문서 시스템?
NSWAG는 .NET, .NET Core, Web API, ASP.NET Core, TypeScript (jQuery, AngularJS, Angular 2+, Aurelia, Knockoutjs 등) 및 기타 플랫폼을위한 Swagger/OpenApi 2.0 및 3.0 도구 체인입니다. OpenAPI/Swagger 사양은 JSON 및 JSON 스키마를 사용하여 편안한 웹 API를 설명합니다. NSWAG 프로젝트는 기존 ASP.NET 웹 API 컨트롤러 및 클라이언트 코드에서 OpenAPI 사양을 생성하는 도구를 제공합니다.
이 프로젝트는 하나의 도구 체인 (이 두 Libs가 필요하지 않음)에서 Swashbuckle (OpenApi/Swagger Generation)과 Autorest (클라이언트 생성)의 기능을 결합합니다. 이런 식으로 많은 양립 딜 라이트를 피할 수 있으며 OpenAPI 사양 또는 JSON 스키마에 의해 잘 설명되지 않은 기능이 더 잘 지원됩니다 (예 : 상속, 열거 및 참조 처리). NSWAG 프로젝트는 JSON 스키마 처리 및 C#/TypeScript 클래스/인터페이스 생성 용 .NET에 NJSONSCHEMA를 많이 사용합니다.

이 프로젝트는 Rico Suter 및 기타 기고자들이 개발하고 유지 관리합니다.
특징
- C# ASP.NET (Core) 컨트롤러에서 Swagger 2.0 및 OpenAPI 3.0 사양 생성
- Swagger UI 또는 Redoc을 사용하여 ASP.NET (Core) Middleware를 통해 사양을 제공하십시오.
- 이 사양에서 C# 또는 TypeScript 클라이언트/프록시를 생성하십시오
- CLI를 통해 모든 것을 자동화 할 수 있습니다 (Nuget 도구 또는 빌드 대상을 통해 배포; 또는 NPM).
- CLI는 JSON 파일 또는 NSwagstudio Windows UI를 통해 구성되었습니다
도구 체인을 사용하는 방법
- Windows Gui, Nswagstudio 사용 간단합니다
- OpenApi 또는 OpenApi UI OWIN 및 ASP.NET Core Middlewares (Swagger UI에도 서비스)를 사용함으로써 (권장)
- Via Command Line (Windows, Mac 및 Linux는 Mono 또는 .NET Core Console Binary, NPM 패키지를 통한 지원)
- C# 코드에서 Nuget을 통해
- MSBuild 대상에서
- .csproj (미리보기)에 ServiceProjectreference 태그가 있습니다.
- Azure V2 기능 (외부 프로젝트, 최신 NSWAG 버전을 사용하지 않을 수 있음)에서
튜토리얼
- asp.net 코어 앱에 nswag를 추가하십시오
- NSWAG 도구 체인을 ASP.NET 웹 API 프로젝트에 통합
- 기존 ASP.NET 웹 API 웹 어셈블리에서 각도 형식 스크립트 클라이언트 생성
- 비디오 자습서 : NSWAG를 ASP.NET Core Web API 프로젝트에 통합하는 방법 (5 분)
OpenApi/Swagger 생성기
- ASP.NET Web API Assembly to OpenAPI (.NET Core 지원)
- aspnetcoreopenapidocumentgenerator
- webapiopenapidocumentgenerator
- 웹 API 컨트롤러에 대한 OpenAPI 사양을 생성합니다
- Webapitoopenapicommand
- 외부 웹 API 어셈블리에서 컨트롤러에 대한 OpenAPI 사양을 생성합니다.
- 또한 .NET 코어 어셈블리의로드를 지원합니다
- typestoopenapicommand
- .NET 어셈블리의 유형 만 포함 된 OpenAPI 사양을 생성합니다.
코드 생성기
- CSHARP 클라이언트
- CsharpclientGenerator
- OpenAPI 사양에서 C# 클라이언트를 생성합니다
- inotifyPropertyChanged 지원 DTO를 구현하는 POCO 또는 클래스를 생성합니다
- 생성 된 클라이언트는 전체 .NET, .NET Core, Xamarin 및 .NET Standard 1.4와 함께 사용할 수 있습니다.
- CSHARP 컨트롤러 (Contract First/Schema First Development)
- CsharpControllergenerator
- OpenAPI 사양을 기반으로 웹 API 컨트롤러를 생성합니다 (ASP.NET WEB API 및 ASP.NET CORE)
- TypeScript 클라이언트
- TypeScriptClientGenerator
- OpenAPI 사양에서 TypeScript 클라이언트를 생성합니다
- 사용 가능한 템플릿/지원 라이브러리 :
- 콜백이있는 jQuery,
JQueryCallbacks - jQuery가
JQueryPromises 약속합니다 - $ http,
AngularJS 사용하는 Angularjs - HTTP 서비스를 사용하여 Angular (v2+),
Angular - Window.fetch API 및 ES6 약속,
Fetch (React/Redux 앱 에서이 템플릿을 사용) - Aurelia-Fetch-Client, Aurelia의 Httpclient를 사용하는
Aurelia (Fetch 템플릿 기반) -
Axios (미리보기)
다운로드
- 최신 NSwagstudio MSI 설치 프로그램 다운로드 (NSwagstudio.msi) (Windows 데스크탑 응용 프로그램)
- 최신 NSWAG 명령 줄 도구 및 NSWAGSTUDIO (NSWAG.ZIP) 다운로드
NPM 패키지
- NSWAG : 명령 줄 도구 (.NET 및 .NET Core)는 NPM 패키지로 배포되었습니다.
Nuget 패키지
사양
- nswag.core
- OpenApi / Swagger Reader 및 Writer 클래스, OpenApIdocument (.NET Standard 1.0 / 2.0 및 .NET 4.5) 참조
- nswag.core.yaml (.NET 표준 1.3 / 2.0 및 .NET 4.5)
- Yaml OpenApi 사양을 읽고 쓰는 확장
- nswag.annotations (.NET 표준 1.0 / 2.0 및 .NET 4.5)
- OpenAPI 생성을 제어하기 위해 웹 API 컨트롤러를 장식하는 속성
OpenApi 세대
- nswag.generation (.NET 표준 1.0 / 2.0 및 .NET 4.5)
- nswag.generation.webapi (.NET 표준 1.0 / 2.0 및 .NET 4.5)
- 웹 API 컨트롤러에서 OpenAPI 사양을 생성하는 클래스, WebapioPenapidocumentgenerator를 참조하십시오.
- nswag.generation.aspnetCore (.NET 표준 1.6 / 2.0 및 .NET 4.5.1)
- (실험) 클래스 APIEXPLORER를 사용하여 ASP.NET Core MVC 컨트롤러에서 OpenAPI 사양을 생성하는 클래스
코드 생성
- NSWAG.CODEGENERATION (.NET 표준 1.3 / 2.0 / .NET 4.5.1)
- OpenAPI 사양에서 클라이언트를 생성하는 기본 클래스
- nswag.codegeneration.csharp (.NET 표준 1.3 및 .NET 4.5.1)
- OpenAPI 사양에서 C# 클라이언트를 생성하는 클래스, CSHARPCLIENTGENERATOR 및 CSHARPControllergenerator를 참조하십시오.
- nswag.codegeneration.typescript (.NET 표준 1.3 및 .NET 4.5.1)
- OpenAPI 사양에서 TypeScript 클라이언트를 생성하는 클래스, TypeScriptClientGenerator를 참조하십시오.
ASP.NET 및 ASP.NET CORE
- nswag.aspnetCore (.NET 표준 1.6 / 2.0 및 .NET 4.5.1+)
- nswag.aspnet.owin (.NET 4.5+)
- OpenApi 사양 및 Swagger UI를 제공하기위한 ASP.NET CORE/OWIN 중간 전쟁
- nswag.aspnet.webapi (.net 4.5+)
- 예외를 연속화하는 ASP.NET 웹 API 필터
프론트 엔드
- nswag.assemblyloader (.NET 표준 1.6 / 2.0 및 .NET 4.5.1) :
- 고립 된 앱 도메인에 어셈블리를로드하고 웹 API 컨트롤러에서 OpenAPI 사양을 생성하는 클래스
- NSWAG.COMMANDS (.NET 표준 1.6 / 2.0 및 .NET 4.5.1+) :
- nswag.msbuild (msbuild .targets) :
- 비주얼 스튜디오 프로젝트에 .targets 파일을 추가하여 MSBuild 대상에서 NSWAG 명령 줄 도구를 실행할 수 있도록 MSBuild를 참조하십시오.
- NSWAG.CONSORECORE (.NET Core 1.0, 1.1, 2.0, 2.1 및 2.2) :
- .NET CORE (
dotnet nswag )의 명령 줄 도구 -
<DotNetCliToolReference Include="NSwag.ConsoleCore" Version="..." />
- nswagstudio (초콜릿, 창) :
- Chocolate를 통해 Nswagstudio 및 Command Line 도구를 설치하는 패키지
CI Nuget 피드
https://www.myget.org/f/nswag/api/v3/index.json
NUGET 패키지에는 .NET Core/UWP 대상의 Microsoft.netCore.portable.compatibility 패키지가 필요할 수 있습니다 (MSCorlib가 누락 된 경우).

C#의 사용
OpenAPI 사양을 생성하고 UI를 렌더링하려면 중간 전쟁을 등록하려면 Startup.cs 에 NSWAG를 등록하십시오.
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 ( ) ; 자세한 내용은 Project Wiki를 확인하십시오.
Nswagstudio
발전기는 NSwagstudio라는 편안하고 간단한 Windows GUI에서 사용할 수 있습니다.
스폰서, 지원 및 컨설팅
구현, 문제 해결, 지원 또는 후원을 위해 상당한 금액을 지불 한 회사 또는 개인은 다음과 같습니다. 이 프로젝트를 지원해 주셔서 감사합니다! 당신은 또한 재정적 기고자가 될 수 있습니다 :
- Github를 통해 주요 기고자 Rico Suter를 후원합니다
- NSWAG의 Open Collective를 통한 스폰서 프로젝트
유료 컨설팅 및 지원은 Rico Suter에 문의하십시오.
기고자
이 프로젝트는 기부 한 모든 사람들 덕분에 존재합니다. [기여하다].
스폰서
스폰서가 되어이 프로젝트를 지원하십시오. 귀하의 로고는 귀하의 웹 사이트 링크와 함께 여기에 표시됩니다.
최고 스폰서 :
스폰서 :
후원자
우리의 모든 후원자들에게 감사합니다!