OpenAPI 3スキーマからTypeScript型を生成し、それらの型に基づく型安全なfetchクライアントも提供します。
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
ASP.NET Core プロジェクトに NSwag NuGet パッケージ(例: NSwag.AspNetCore)をインストールします
- 2
Startup.cs で AddOpenApiDocument を使って NSwag を登録し、UseOpenApi と UseSwaggerUi を呼び出します
- 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 の数値は毎日更新されます。
関連プロジェクト
OpenAPI仕様から多くの言語・フレームワーク向けのAPIクライアントSDK、サーバースタブ、ドキュメントを生成
OpenAPI/Swagger定義からAPIクライアントSDK、サーバースタブ、HTMLドキュメントを生成するコマンドラインツール。
OpenAPI 3.0/3.1仕様から、サーバーのひな形やAPIクライアント、モデルを生成するGo製CLIツール兼ライブラリ。
Bitwardenクライアント向けAPI、SQL Serverデータベース、Dockerによるデプロイを提供するバックエンドサーバー。
インタラクティブなAPIリファレンス、オフラインファーストのAPIクライアント、多数のWebフレームワーク向け連携機能を備えたオープンソースのOpenAPI/Swaggerツールキット。