.NETヘルプ Nswag C#(開発者向けの動作方法) Jacob Mellor 更新日:2025年6月22日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る API は、さまざまなソフトウェアシステムやコンポーネント間のコミュニケーションを促進するため、今日のソフトウェア開発環境において不可欠です。 開発者が API を効率的に利用するためには、徹底的で理解しやすいドキュメントが必要です。 C# API ドキュメントのワークフローを改善できる効果的なツールには、NSwag C# と IronPDF があります。 この投稿では、.NET Core を使用して API 仕様 を生成し、これらの仕様を IronPDF を使用して高品質の PDF ドキュメントにする方法を紹介します。 How to Use NSwag in C Swagger UI を使用して RESTful Web API を作成します。 C# コンソールアプリケーションを作成します。 NSwag ライブラリをインストールします。 名前空間をインポートし、オブジェクトを作成します。 Swagger JSON を C# コードに変換します。 コードを実行し、結果を表示します。 NSwag の理解 NSwag は、ASP.NET Web API、ASP.NET Core、または他の .NET Frameworkを使用して構築された API のために Swagger 仕様、すなわち OpenAPI ドキュメントを作成するプロセスを容易にするために作成された .NET の Swagger ツールチェーンです。 NSwag の特徴 Swagger 仕様の生成 NSwag は、コントローラー、モデル、および .NET アセンブリを使用して Swagger 仕様を自動的に生成できます。 NSwag は API コードの構造を検査することで、API エンドポイント、リクエスト/レスポンス形式、認証手法などをカバーする包括的なドキュメントを生成します。 .NET プロジェクトへの統合 開発者は、NSwag を .NET プロジェクトに統合することで、開発プロセスに Swagger 生成を簡単に組み込むことができます。 開発者は、NSwag を .NET Core プロジェクトに追加することで、コードベースとともにドキュメントが更新されることを確認できます。これにより、プロジェクトが構築されるたびに Swagger 仕様が自動的に生成されます。 カスタマイズと拡張 NSwag が提供する幅広いカスタマイズオプションにより、開発者は生成された Swagger 仕様を簡単に独自のニーズに合わせて調整できます。 開発者は、構成設定や注釈を通じて、生成されたドキュメントの多くのコンポーネント(応答コード、パラメータの説明、ルート命名規則など)を管理できます。 NSwag の始め方 C# コンソール アプリで NSwag をセットアップ NSwag ベースクラスライブラリには、コア、注釈、コード生成用の名前空間が含まれており、NuGet からのインストールで入手可能です。 NSwag を C# アプリケーションに統合してコードと Swagger 仕様を生成する方法、および NSwag が開発プロセスの効率をどのように向上させるか。 Windows コンソールとフォームへの NSwag の実装 自動化されたクライアント生成を通じて、開発者は NSwag を Windows デスクトップ アプリケーションに統合することで、デスクトップ アプリ内から API に直接アクセスするコードを効率的に生成できます。 オンラインサービスや RESTful API と通信するデスクトップアプリを開発する際にとても役に立ちます。 NSwag は、内部 API の API ドキュメントや外部 API を利用するためのクライアントコードを生成するために Web アプリケーションで使用できます。これにより、開発者はアプリケーションのフロントエンドとバックエンドコンポーネントを一貫させることができます。 NSwag C# の例 以下は、NSwag を使用して C# クライアント コードを生成する方法を示すコード例です。 using NSwag.CodeGeneration.CSharp; using NSwag; using System.Reflection; using System.CodeDom.Compiler; using Microsoft.CodeAnalysis; using System.Net.Http; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { using (var wclient = new System.Net.WebClient()) { // Create JSON file data from the Swagger .NET Core web API var document = await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json")); var settings = new CSharpClientGeneratorSettings { ClassName = "Weather", CSharpGeneratorSettings = { Namespace = "Demo" } }; var generator = new CSharpClientGenerator(document, settings); var code = generator.GenerateFile(); var assembly = CompileCode(code); var clientType = assembly.GetType("Demo.WeatherClient"); // Replace with your actual client class name using (var httpClient = new HttpClient()) { var client = (IApiClient)Activator.CreateInstance(clientType, httpClient); var result = await client.GetWeatherForecastAsync(); foreach (var item in result) { Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}"); } } } } static Assembly CompileCode(string code) { using (var memoryStream = new MemoryStream()) { var assemblyPath = Path.GetDirectoryName(typeof(object).Assembly.Location); var references = new List<MetadataReference> { MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll")) }; var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient") .WithOptions(new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)) .AddReferences(references) .AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code)); var emitResult = compilation.Emit(memoryStream); if (!emitResult.Success) { Console.WriteLine("Compilation errors:"); foreach (var diagnostic in emitResult.Diagnostics) { Console.WriteLine(diagnostic); } return null; } memoryStream.Seek(0, SeekOrigin.Begin); return Assembly.Load(memoryStream.ToArray()); } } public interface IApiClient { // Replace with your actual method name and return type Task<List<WeatherForecast>> GetWeatherForecastAsync(); } public class WeatherForecast { public DateTime Date { get; set; } public int TemperatureC { get; set; } public int TemperatureF { get; set; } public string Summary { get; set; } } } using NSwag.CodeGeneration.CSharp; using NSwag; using System.Reflection; using System.CodeDom.Compiler; using Microsoft.CodeAnalysis; using System.Net.Http; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { using (var wclient = new System.Net.WebClient()) { // Create JSON file data from the Swagger .NET Core web API var document = await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json")); var settings = new CSharpClientGeneratorSettings { ClassName = "Weather", CSharpGeneratorSettings = { Namespace = "Demo" } }; var generator = new CSharpClientGenerator(document, settings); var code = generator.GenerateFile(); var assembly = CompileCode(code); var clientType = assembly.GetType("Demo.WeatherClient"); // Replace with your actual client class name using (var httpClient = new HttpClient()) { var client = (IApiClient)Activator.CreateInstance(clientType, httpClient); var result = await client.GetWeatherForecastAsync(); foreach (var item in result) { Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}"); } } } } static Assembly CompileCode(string code) { using (var memoryStream = new MemoryStream()) { var assemblyPath = Path.GetDirectoryName(typeof(object).Assembly.Location); var references = new List<MetadataReference> { MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll")) }; var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient") .WithOptions(new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)) .AddReferences(references) .AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code)); var emitResult = compilation.Emit(memoryStream); if (!emitResult.Success) { Console.WriteLine("Compilation errors:"); foreach (var diagnostic in emitResult.Diagnostics) { Console.WriteLine(diagnostic); } return null; } memoryStream.Seek(0, SeekOrigin.Begin); return Assembly.Load(memoryStream.ToArray()); } } public interface IApiClient { // Replace with your actual method name and return type Task<List<WeatherForecast>> GetWeatherForecastAsync(); } public class WeatherForecast { public DateTime Date { get; set; } public int TemperatureC { get; set; } public int TemperatureF { get; set; } public string Summary { get; set; } } } $vbLabelText $csharpLabel 使用したい API については、Swagger 仕様の URL (swaggerUrl) を指定します。 次に、生成および実行されるクライアントコードを DLL アセンブリに定義します。 OpenApiDocument は、FromJsonAsync を使用して、指定された URL から Swagger ドキュメントを非同期的にロードするために使用されます。 生成されたクライアント コードを変更するには、コード ジェネレーターの設定を調整します (CSharpClientGeneratorSettings)。 この例では、生成されたクライアントコードのクラス名と名前空間を指定します。 ロードされた Swagger ドキュメントから、CSharpClientGenerator のインスタンスを作成し、それを使用してクライアント コードを生成します。 作成されたクライアントコードは指定された出力パスに保存されます。 手続き中に発生する可能性のある例外やエラーに対応し、関連する通知をコンソールに表示します。 NSwag の操作 クライアントコードの生成 NSwag は Swagger 仕様を使用して、Java、TypeScript、C# など多くの言語でクライアントコードを生成できます。 これにより、開発者は API を簡単にアプリケーションで利用することができます。 サーバーコードの生成 Swagger 仕様を基にして、NSwag は ASP.NET Core コントローラーなどのサーバーコードも生成できます。 これは API 実装のためのサーバーサイドコードを迅速にスキャフォールディングするのに役立ちます。 インタラクティブな API ドキュメントの生成 既存の Swagger 仕様を基にして、NSwag は Swagger UI のようなインタラクティブな API ドキュメントを生成できます。 このドキュメントは API エンドポイントを探検しテストするための使いやすいインターフェースを提供します。 プロキシクラスの生成 SOAP ベースの API と統合するために、NSwag はプロキシクラスを生成できます。 これにより、プログラマーは生成されたクライアントコードを使用してアプリケーション内から SOAP サービスにアクセスできます。 Swagger 仕様の検証 NSwag は Swagger 仕様が OpenAPI/Swagger 標準に従っていることを確認するために検証することが可能です。 これにより API ドキュメント内のエラーや不一致を見つけやすくなります。 NSwag と IronPDF の統合 NSwag を IronPDF と統合することで、両技術の利点を活用して API ドキュメントのワークフローが改善されます。 開発者は、NSwag を使用して Swagger 仕様を生成し、IronPDF を使用してそれらを PDF に変換することによって、オフラインでも利用可能で共有しやすい .NET Web API ドキュメントを作成できます。 統合プロセスは以下の手順で行います。 IronPDF は HTML から PDF への変換に秀でており、元のレイアウトとスタイルを正確に保存します。 これは、レポート、請求書、ドキュメントなどの Web ベースのコンテンツから PDF を作成するのに最適です。 HTML ファイル、URL、または生の HTML 文字列のサポートにより、IronPDF は高品質な PDF ドキュメントを簡単に生成します。 using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } $vbLabelText $csharpLabel IronPDFのインストール Visual Studio プロジェクトを開始します。 "ツール">"NuGet パッケージ マネージャー">"パッケージ マネージャー コンソール"を選択します。 コマンドプロンプトを開き、パッケージマネージャーコンソールで次のコマンドを入力します。 Install-Package IronPdf または、ソリューションの NuGet パッケージマネージャーを使用して IronPDF をインストールできます。 検索結果から IronPDF パッケージを探して選択し、インストールオプションをクリックしてください。 Visual Studio がダウンロードとインストールを代行します。 NuGet が IronPDF パッケージとプロジェクトに必要な依存関係をインストールします。 インストール後、IronPDF はプロジェクトで利用できるようになります。 NuGetウェブサイトからのインストール IronPDF の機能、互換性、およびダウンロードに関する詳細情報については、NuGet 上の IronPDF ページをご覧ください。 DLLを利用したインストール また、DLL ファイルを使用して IronPDF をプロジェクトに直接組み込むこともできます。DLL を含む ZIP ファイルをダウンロードするには、IronPDF ダウンロードリンクをクリックしてください。 ファイルを解凍してプロジェクトに DLL を追加してください。 ロジックを実装する NSwag を利用することで、開発者はIronPDFと組み合わせて CodeGeneration.CSharp を使用することで、API ドキュメントと API を使用するためのクライアント コードをより迅速に作成できます。 統合ワークフローは以下の手順を含みます。 1.クライアント コードの生成: Swagger 仕様から C# クライアント コードを作成するには、NSwag.CodeGeneration.CSharp を使用します。 このステップでは、API エンドポイントとの通信のためのクライアントクラスとメソッドの生成が自動化されます。 NSwag を使用してデータを取得する: Swagger 仕様から JSON ドキュメントを生成するには、CodeGeneration.CSharp を使用します。 この段階では、リクエスト/レスポンス形式、認証方法、API クライアントエンドポイントを人間が理解できるドキュメントとして作成します。 JSON から PDF への変換: IronPDF を使用して、生成されたコードの結果を PDF ドキュメントに変換します。 この段階では、HTML テキストを共有および配布可能な洗練された PDF ドキュメントに変換します。 PDF ドキュメントの改善: ヘッダー、フッター、透かし、またはユニークなブランドなどのコンテンツを IronPDF を使用して PDF ドキュメントに追加します。 このステージでは、開発者は自身の好みに合わせて PDF ドキュメントの外観とブランディングをカスタマイズできます。 using IronPdf; using System.Text; using System.Collections.Generic; StringBuilder sb = new StringBuilder(); foreach (var item in result) { sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>"); } var renderer = new HtmlToPdf(); var pdf = renderer.RenderHtmlAsPdf(sb.ToString()); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF generated successfully!"); Console.ReadKey(); using IronPdf; using System.Text; using System.Collections.Generic; StringBuilder sb = new StringBuilder(); foreach (var item in result) { sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>"); } var renderer = new HtmlToPdf(); var pdf = renderer.RenderHtmlAsPdf(sb.ToString()); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF generated successfully!"); Console.ReadKey(); $vbLabelText $csharpLabel 上記のコードは、結果オブジェクトから取得したデータにアクセスし、ループ内の段落にフィールド TemperatureC、および Summary を追加します。次に、PDFの出力ファイルパスを指定し、PDFが正常に生成されたことをユーザーに通知します。 上記コードの結果は以下です。 結論 CodeGeneration NSwag テクノロジーとIronPDFは連携して動作し、クライアントのコード作成と API ドキュメント作成プロセスを効率化します。 開発者は、これらのツールを C# アプリケーションに統合することで、API ドリブン ソリューションの作成をスピードアップし、API ドキュメントの作成を自動化し、プロフェッショナルな外観の PDF 出版物を生成できます。 NSwag.CodeGeneration.CSharp とIronPDF を組み合わせることで、デスクトップ、Web、クラウドベースのアプリを開発する開発者に、API を効率的に文書化し、C# でクライアント コードを作成するための完全なソリューションが提供されます。 Lite バンドルには、永久ライセンス、1 年間のソフトウェア メンテナンス、およびライブラリのアップグレードが含まれています。 IronPDF は、再配布および期間に制限のある無料のライセンスを提供しています。ユーザーは、試用期間中にウィーターマークを視認せずにソリューションを評価できます。 価格およびライセンスに関する詳細については、IronPDF のライセンス情報をご覧ください。 Iron Software の製品ライブラリに関する詳細については、Iron Software ライブラリのページに移動してください。 よくある質問 NSwag は C# で API スペックの生成にどのように役立ちますか? NSwag は .NET Core プロジェクトから Swagger または OpenAPI ドキュメントとして知られる API スペックを自動的に生成できます。これにより API ドキュメントが常にコードベースと同期されます。 Swagger 仕様を PDF ドキュメントに変換するプロセスは何ですか? Swagger 仕様を PDF ドキュメントに変換するには、IronPDF を使用します。まず、NSwag を使用して Swagger 仕様を生成し、その仕様の HTML コンテンツを IronPDF を使用して高品質の PDF に変換します。 .NET プロジェクトに NSwag を統合する方法は? .NET プロジェクトに NSwag を統合するには、NuGet を介して NSwag ライブラリをインストールし、ビルドプロセス中に Swagger 仕様を生成するように構成し、その生成された仕様を文書化やコード生成に使用します。 NSwag は Swagger 仕様からクライアントコードとサーバーコードを生成できますか? はい、NSwag は C#、Java、TypeScript などの言語でクライアントコードを生成し、ASP.NET Core コントローラーのようなサーバー・サイドコードも生成できます。 IronPDF は API ドキュメントのワークフローをどのように向上させますか? IronPDF は HTML ベースの API ドキュメンテーションを専門的で共有可能な PDF ドキュメントに変換することにより、どこでもアクセス可能な情報を提供し、API ドキュメンテーションワークフローを向上させます。 Visual Studio プロジェクトで IronPDF を使用するために必要な手順は何ですか? Visual Studio プロジェクトで IronPDF を使用するには、NuGet パッケージマネージャーで IronPDF を検索して「インストール」をクリックするか、パッケージマネージャーコンソールで Install-Package IronPDF コマンドを使用してインストールします。 NSwag を使用してインタラクティブな API ドキュメンテーションをどのように生成できますか? NSwag はブラウザ内で API エンドポイントを直接探索およびテストするためのインターフェイスを提供する Swagger UI を生成することで、インタラクティブな API ドキュメンテーションを生成できます。 NSwag を API ドキュメンテーションに使用する利点は何ですか? NSwag は API ドキュメンテーションの自動生成を行い、コードベースと常に一致するように保ちます。インタラクティブなドキュメンテーションとクライアント・サイドコードの作成をサポートし、開発プロセスを効率化します。 IronPDF は HTML コンテンツをどのようにして PDF に変換しますか? IronPDF は CSS と JavaScript を含む HTML コンテンツを PDF 形式に変換するため、そのレンダリングエンジンを使用してウェブベースのコンテンツから正確かつオフライン対応のドキュメントを作成します。 Jacob Mellor 今すぐエンジニアリングチームとチャット 最高技術責任者(CTO) ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。 関連する記事 更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む 更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む Dapper C#(開発者向けの動作方法)Flunt C#(開発者向けの動作...
更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む
更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む