Repolode
RicoSuter

RicoSuter/NSwag

ASP.NET CoreコントローラーからAPI仕様を生成し、仕様からC#またはTypeScriptクライアントを生成する、.NET向けSwagger/OpenAPIツールチェーン。

スター
7,368
フォーク
1,363
未解決の Issue
2,068
最終コミット
2 か月前

これは何?

NSwagは、.NETおよびTypeScriptプロジェクトでOpenAPI(Swagger)仕様を扱うためのツールチェーンです。ASP.NET Web APIやASP.NET CoreのコントローラーからOpenAPI 2.0および3.0のドキュメントを生成し、Swagger UIまたはReDocとともにミドルウェア経由で公開できます。

反対に、既存のOpenAPI仕様を読み込み、C#またはTypeScriptのクライアントコードを生成することもできます。TypeScriptの出力先にはAngular、AngularJS、Aurelia、jQuery、Axios、ブラウザーのFetch APIなど、複数のターゲットがあります。JSON Schemaの処理と型生成にはNJsonSchemaを使用します。

NSwagは、コマンドラインツール(NuGetツールまたはnpmパッケージとして配布)やMSBuildターゲット、Windows GUIのNSwagStudioから実行できます。設定はJSONファイルに保存されます。

主な機能

  • 01ASP.NET(Core)コントローラーからSwagger 2.0およびOpenAPI 3.0のドキュメントを生成します。
  • 02ミドルウェア経由でSwagger UIまたはReDocとともにAPI仕様を公開します。
  • 03OpenAPI仕様からC#およびTypeScriptのクライアントを生成します。
  • 04Angular、Fetch、Axiosなど、複数のTypeScript向けHTTPテンプレートに対応しています。
  • 05CLI、MSBuild、またはWindowsアプリのNSwagStudioから実行できます。

ユースケース

  • 既存のASP.NET Core Web APIにOpenAPIとSwagger UIを追加してドキュメント化する。
  • 別の.NETプロジェクトからRESTサービスを呼び出すための、型付きC#クライアントを生成する。
  • バックエンドのAPI仕様から、AngularまたはFetchベースのTypeScriptクライアントを生成する。
  • MSBuildまたはCLIを使い、ビルドパイプラインでクライアントコード生成を自動化する。

クイックスタート

  1. 1

    ASP.NET Core プロジェクトに NSwag NuGet パッケージ(例: NSwag.AspNetCore)をインストールします

  2. 2

    Startup.cs で AddOpenApiDocument を使って NSwag を登録し、UseOpenApi と UseSwaggerUi を呼び出します

  3. 3

    README のコードサンプルまたは NSwag CLI を使って、OpenAPI ファイルから C# または TypeScript のクライアントを生成します

使う前に知っておきたいこと

  • NSwagStudio は Windows 専用のデスクトップアプリケーションです。
  • Mac および Linux でのコマンドライン利用には、Mono または .NET Core コンソールバイナリが必要です。
  • ASP.NET Core OpenAPI ジェネレーターは、README で実験的と記載されています。

トピック

よくある質問

NSwag とは?
ASP.NET CoreコントローラーからAPI仕様を生成し、仕様からC#またはTypeScriptクライアントを生成する、.NET向けSwagger/OpenAPIツールチェーン。 NSwagは、.NETおよびTypeScriptプロジェクトでOpenAPI(Swagger)仕様を扱うためのツールチェーンです。ASP.NET Web APIやASP.NET CoreのコントローラーからOpenAPI 2.0および3.0のドキュメントを生成し、Swagger UIまたはReDocとともにミドルウェア経由で公開できます。
NSwag は無料で使えますか?ライセンスは?
NSwag は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
NSwag は今もメンテナンスされていますか?
半年以内に更新あり。NSwag の最終コミットは 2026年9月7日 です。
NSwag は何に使えますか?
既存のASP.NET Core Web APIにOpenAPIとSwagger UIを追加してドキュメント化する。 別の.NETプロジェクトからRESTサービスを呼び出すための、型付きC#クライアントを生成する。 バックエンドのAPI仕様から、AngularまたはFetchベースのTypeScriptクライアントを生成する。 MSBuildまたはCLIを使い、ビルドパイプラインでクライアントコード生成を自動化する。
NSwag のインストール方法は?
ASP.NET Core プロジェクトに NSwag NuGet パッケージ(例: NSwag.AspNetCore)をインストールします Startup.cs で AddOpenApiDocument を使って NSwag を登録し、UseOpenApi と UseSwaggerUi を呼び出します README のコードサンプルまたは NSwag CLI を使って、OpenAPI ファイルから C# または TypeScript のクライアントを生成します
NSwag はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/RicoSuter/NSwag

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト