NSWAG: Toolchain Swagger/OpenAPI untuk .NET, ASP.NET Core dan TypeScript
Nswag | Njsonschema | Apimundo | Namotion.reflection
Mengumumkan Apimundo: Sistem dokumentasi API berdasarkan NSWAG dan NJSONSCHEMA?
NSWAG adalah alat piring Swagger/OpenAPI 2.0 dan 3.0 untuk .NET, .NET Core, Web API, ASP.NET Core, TypeScript (JQuery, AngularJS, Angular 2+, Aurelia, KnockoutJs dan banyak lagi) dan platform lainnya, ditulis dalam C#. Spesifikasi OpenAPI/Swagger menggunakan skema JSON dan JSON untuk menggambarkan API Web REST. Proyek NSWAG menyediakan alat untuk menghasilkan spesifikasi OpenAPI dari pengontrol API Web ASP.NET yang ada dan kode klien dari spesifikasi OpenAPI ini.
Proyek ini menggabungkan fungsionalitas Swashbuckle (OpenAPI/Swagger Generation) dan Autorest (Generasi Klien) dalam satu toolchain (dua LIB ini tidak diperlukan). Dengan cara ini banyak inkompatibilit dapat dihindari dan fitur yang tidak dijelaskan dengan baik oleh spesifikasi OpenAPI atau skema JSON lebih didukung (misalnya warisan, enum dan penanganan referensi). Proyek NSWAG sangat menggunakan NJSONSCHEMA untuk .NET untuk penanganan skema JSON dan C#/TypeScript Class/Interface Generation.

Proyek ini dikembangkan dan dikelola oleh RICO Suter dan kontributor lainnya.
Fitur
- Hasilkan Spesifikasi Swagger 2.0 dan OpenAPI 3.0 dari C# ASP.NET (Core) Controllers
- Sajikan spesifikasi melalui middleware ASP.NET (Core), secara opsional dengan Swagger UI atau Redoc
- Hasilkan C# atau klien/proksi TypeScript dari spesifikasi ini
- Semuanya dapat diotomatisasi melalui CLI (didistribusikan melalui Nuget Tool atau Build Target; atau NPM)
- CLI dikonfigurasi melalui file json atau nswagstudio windows ui
Cara menggunakan toolchain
- Windows GUI yang mudah digunakan, nswagstudio
- Dengan menggunakan openapi atau openapi ui owin dan asp.net core middlewares (juga melayani UI Swagger) (disarankan)
- Via Command Line (Windows, Mac dan Dukungan Linux melalui Biner Konsol Mono atau .NET Core, juga melalui Paket NPM)
- Dalam kode C# Anda, melalui Nuget
- Dalam target msBuild Anda
- Dengan tag ServiceProjectreference di .csproj (pratinjau) Anda
- Dalam fungsi Azure V2 Anda (proyek eksternal, mungkin tidak menggunakan versi NSWAG terbaru)
Tutorial
- Tambahkan NSWAG ke aplikasi ASP.NET Core Anda
- Integrasikan NSWAG Toolchain ke dalam proyek API Web ASP.NET Anda
- Hasilkan klien naskah Angular dari Aspit Web API ASP.NET yang ada
- Tutorial Video: Cara Mengintegrasikan NSWAG ke dalam Proyek API Web Inti ASP.NET Anda (5 menit)
Generator openapi/Swagger
- Assp.net Web API Assembly to OpenAPI (Mendukung .NET Core)
- AspnetCoreopenapidocumentGenerator
- WebapiopenapidocumentGenerator
- Menghasilkan spesifikasi OpenAPI untuk pengontrol API Web
- WebapitoopenapiCommand
- Menghasilkan spesifikasi OpenAPI untuk pengontrol dalam perakitan API web eksternal
- Juga mendukung pemuatan rakitan inti .NET
- LypestoopenapiCommand
- Menghasilkan spesifikasi OpenAPI yang hanya berisi jenis dari .NET Assepties
Generator kode
- Klien csharp
- CSharpClientGenerator
- Menghasilkan klien C# dari spesifikasi OpenAPI
- Menghasilkan POCOS atau Kelas Menerapkan DTO Pendukung InotifyPropertertyChanged
- Klien yang dihasilkan dapat digunakan dengan .NET, .NET Core, Xamarin dan .NET Standard 1.4 secara umum secara umum secara umum
- Pengendali CSHARP (Kontrak Pertama/Skema Pengembangan Pertama)
- CsharpControllergenerator
- Menghasilkan Pengontrol API Web Berdasarkan Spesifikasi OpenAPI (ASP.NET Web API dan ASP.NET Core)
- Klien TypeScript
- TypeScriptClientGenerator
- Menghasilkan klien TypeScript dari spesifikasi OpenAPI
- Templat yang tersedia/pustaka yang didukung:
- JQuery dengan callbacks,
JQueryCallbacks - JQuery dengan janji
JQueryPromises - AngularJS menggunakan $ http,
AngularJS - Angular (V2+) Menggunakan Layanan HTTP,
Angular - Window.fetch API dan ES6 janji,
Fetch (gunakan template ini di aplikasi React/Redux Anda) - Aurelia Menggunakan httpClient dari Aurelia-Fetch-Client,
Aurelia (berdasarkan templat pengambilan) -
Axios (Pratinjau)
Unduhan
- Unduh Penginstal MSI NSWAGStudio terbaru (nswagstudio.msi) (Aplikasi Desktop Windows)
- Unduh Alat Baris Perintah NSWAG Terbaru dan NSWAGSTUDIO (NSWAG.ZIP)
Paket NPM
- NSWAG: Alat baris perintah (.net dan .net core) didistribusikan sebagai paket NPM
Paket Nuget
Spesifikasi
- Nswag.core
- Kelas Pembaca dan Penulis OpenAPI / Swagger, lihat Openapidocument (.NET Standard 1.0 / 2.0 dan .NET 4.5)
- Nswag.core.yaml (standar .net 1.3 / 2.0 dan .net 4.5)
- Ekstensi untuk membaca dan menulis spesifikasi openapi yaml
- NSWAG.Annotations (.NET Standar 1.0 / 2.0 dan .NET 4.5)
- Atribut untuk menghias pengontrol API web untuk mengontrol generasi OpenAPI
Generasi openapi
- NSWAG.Generation (.NET Standar 1.0 / 2.0 dan .NET 4.5)
- Kelas untuk menghasilkan spesifikasi openapi
- Nswag.generation.webapi (.net Standard 1.0 / 2.0 dan .net 4.5)
- Kelas untuk menghasilkan spesifikasi OpenAPI dari pengontrol API Web, lihat WebapiopenapidocumentGenerator
- Nswag.generation.aspnetCore (.NET Standard 1.6 / 2.0 dan .NET 4.5.1)
- (Eksperimental) Kelas untuk menghasilkan spesifikasi openapi dari asp.net core mvc controller menggunakan ApiExplorer
Pembuatan kode
- Nswag.codegeneration (.NET Standar 1.3 / 2.0 / .net 4.5.1)
- Kelas dasar untuk menghasilkan klien dari spesifikasi openapi
- Nswag.codegeneration.csharp (.net Standard 1.3 dan .net 4.5.1)
- Kelas untuk menghasilkan klien C# dari spesifikasi OpenAPI, lihat csharpclientgenerator dan csharpControllergenerator
- Nswag.codegeneration.typescript (.NET Standar 1.3 dan .net 4.5.1)
- Kelas untuk menghasilkan klien TypeScript dari spesifikasi OpenAPI, lihat TypeScriptClientGenerator
ASP.NET dan ASP.NET Core
- Nswag.aspnetcore (.NET Standar 1.6 / 2.0 dan .NET 4.5.1+)
- Nswag.aspnet.owin (.net 4.5+)
- Asp.net Core/Owin Middlewares untuk menyajikan spesifikasi openapi dan Swagger UI
- Nswag.aspnet.webapi (.net 4.5+)
- ASP.NET Web API Filter yang membuat serial pengecualian (JSonexceptiFilterAttribute)
Frontend
- Nswag.assemblyloader (.NET Standar 1.6 / 2.0 dan .NET 4.5.1):
- Kelas untuk memuat rakitan di appdomain terisolasi dan menghasilkan spesifikasi openapi dari pengontrol API web
- NSWAG.Commands (.NET Standar 1.6 / 2.0 dan .NET 4.5.1+):
- Perintah untuk Implementasi Alat Baris Perintah dan UI
- Nswag.msbuild (msBuild .targets):
- Menambahkan file .targets ke proyek Visual Studio Anda, sehingga Anda dapat menjalankan alat baris perintah NSWAG di target MSBuild, lihat MSBuild
- Nswag.consolecore (.NET Core 1.0, 1.1, 2.0, 2.1 dan 2.2):
- Alat baris perintah untuk .NET Core (
dotnet nswag ) -
<DotNetCliToolReference Include="NSwag.ConsoleCore" Version="..." />
- Nswagstudio (cokelat, windows):
- Paket untuk menginstal alat NSWAGStudio dan Command Line melalui cokelat
CI Nuget Feed
https://www.myget.org/f/nswag/api/v3/index.json
Paket NUGET mungkin memerlukan paket microsoft.netcore.portable .

Penggunaan di C#
Untuk mendaftarkan Perangkat Middlew untuk menghasilkan spesifikasi OpenAPI dan membuat UI, Daftarkan NSWAG di 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
}
} Kode berikut menunjukkan cara membaca spesifikasi OpenAPI/Swagger dan menghasilkan kelas klien C# untuk memanggil layanan web yang dijelaskan:
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 ( ) ; Lihat Wiki Proyek untuk informasi lebih lanjut.
Nswagstudio
Generator dapat digunakan dalam Windows GUI yang nyaman dan sederhana yang disebut NSWAGSTUDIO:
Sponsor, Dukungan dan Konsultasi
Perusahaan atau individu yang membayar sejumlah besar untuk menerapkan, memperbaiki masalah, dukungan atau sponsor tercantum di bawah ini. Terima kasih telah mendukung proyek ini! Anda juga bisa menjadi kontributor keuangan:
- Sponsor Kontributor Utama Rico Suter melalui GitHub
- Proyek Sponsor Via Open Collective untuk NSWAG
Silakan hubungi Rico Suter untuk konsultasi dan dukungan berbayar.
Kontributor
Proyek ini ada berkat semua orang yang berkontribusi. [Menyumbang].
Sponsor
Dukung proyek ini dengan menjadi sponsor. Logo Anda akan muncul di sini dengan tautan ke situs web Anda.
Sponsor teratas:
Sponsor:
Pendukung
Terima kasih untuk semua pendukung kami!