フッターコンテンツにスキップ
.NETヘルプ

Nswag C#(開発者向けの動作方法)

API は、さまざまなソフトウェアシステムやコンポーネント間のコミュニケーションを促進するため、今日のソフトウェア開発環境において不可欠です。 開発者が API を効率的に利用するためには、徹底的で理解しやすいドキュメントが必要です。 C# API ドキュメントのワークフローを改善できる効果的なツールには、NSwag C# と IronPDF があります。 この投稿では、.NET Core を使用して API 仕様 を生成し、これらの仕様を IronPDF を使用して高品質の PDF ドキュメントにする方法を紹介します。

NSwag を C# で使用する方法

  1. Swagger UI を使用して RESTful Web API を作成します。
  2. C# コンソールアプリケーションを作成します。
  3. NSwag ライブラリをインストールします。
  4. 名前空間をインポートし、オブジェクトを作成します。
  5. Swagger JSON を C# コードに変換します。
  6. コードを実行し、結果を表示します。

NSwag の理解

NSwag は、ASP.NET Web API、ASP.NET Core、または他の .NET フレームワークを使用して構築された 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 が開発プロセスの効率をどのように向上させるか。

NSwag C# (開発者にとっての操作方法): 図 1 - Visual Studio のパッケージ マネージャーで 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; }
    }
}
Imports NSwag.CodeGeneration.CSharp
Imports NSwag
Imports System.Reflection
Imports System.CodeDom.Compiler
Imports Microsoft.CodeAnalysis
Imports System.Net.Http
Imports System.IO
Imports System.Collections.Generic
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Using wclient = New System.Net.WebClient()
			' Create JSON file data from the Swagger .NET Core web API
			Dim document = Await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json"))
			Dim settings = New CSharpClientGeneratorSettings With {
				.ClassName = "Weather",
				.CSharpGeneratorSettings = { [Namespace] = "Demo" }
			}

			Dim generator = New CSharpClientGenerator(document, settings)
			Dim code = generator.GenerateFile()
			Dim assembly = CompileCode(code)
			Dim clientType = assembly.GetType("Demo.WeatherClient") ' Replace with your actual client class name
			Using httpClient As New HttpClient()
				Dim client = DirectCast(Activator.CreateInstance(clientType, httpClient), IApiClient)
				Dim result = Await client.GetWeatherForecastAsync()
				For Each item In result
					Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}")
				Next item
			End Using
		End Using
	End Function

	Private Shared Function CompileCode(ByVal code As String) As System.Reflection.Assembly
		Using memoryStream As New MemoryStream()
			Dim assemblyPath = Path.GetDirectoryName(GetType(Object).Assembly.Location)
			Dim references = New List(Of MetadataReference) From {MetadataReference.CreateFromFile(GetType(Object).GetTypeInfo().Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll"))}

			Dim compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient").WithOptions(New Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)).AddReferences(references).AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code))

			Dim emitResult = compilation.Emit(memoryStream)
			If Not emitResult.Success Then
				Console.WriteLine("Compilation errors:")
				For Each diagnostic In emitResult.Diagnostics
					Console.WriteLine(diagnostic)
				Next diagnostic
				Return Nothing
			End If
			memoryStream.Seek(0, SeekOrigin.Begin)
			Return System.Reflection.Assembly.Load(memoryStream.ToArray())
		End Using
	End Function

	Public Interface IApiClient
		' Replace with your actual method name and return type
		Function GetWeatherForecastAsync() As Task(Of List(Of WeatherForecast))
	End Interface

	Public Class WeatherForecast
		Public Property [Date]() As DateTime
		Public Property TemperatureC() As Integer
		Public Property TemperatureF() As Integer
		Public Property Summary() As String
	End Class
End Class
$vbLabelText   $csharpLabel

使用する API の Swagger 仕様の URL (swaggerUrl) を指定します。 次に、生成および実行されるクライアントコードを DLL アセンブリに定義します。 OpenApiDocument が使用され、指定された URL から Swagger ドキュメントを FromJsonAsync を使って非同期にロードします。 生成されたクライアントコードを変更するために、コードジェネレーターの設定 (CSharpClientGeneratorSettings) を調整します。 この例では、生成されたクライアントコードのクラス名と名前空間を指定します。

ロードされた Swagger ドキュメントから CSharpClientGenerator のインスタンスを構築し、それを使用してクライアントコードを生成します。 作成されたクライアントコードは指定された出力パスに保存されます。 手続き中に発生する可能性のある例外やエラーに対応し、関連する通知をコンソールに表示します。

NSwag C# (開発者にとっての操作方法): 図 2 - 上記コードのコンソール出力

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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF のインストール

  • Visual Studio プロジェクトを開始します。
  • 「ツール」>「NuGet パッケージ マネージャー」>「パッケージ マネージャー コンソール」を選択します。
  • コマンドプロンプトを開き、パッケージマネージャーコンソールで次のコマンドを入力します。
Install-Package IronPdf
  • または、ソリューションの NuGet パッケージマネージャーを使用して IronPDF をインストールできます。
  • 検索結果から IronPDF パッケージを探して選択し、インストールオプションをクリックしてください。 Visual Studio がダウンロードとインストールを代行します。

NSwag C# (開発者にとっての操作方法): 図 3 - NuGet パッケージマネージャーのソリューションで検索バーに「IronPdf」と入力してプロジェクトを選択し、インストールボタンをクリックして IronPDF を管理します。

  • NuGet が IronPDF パッケージとプロジェクトに必要な依存関係をインストールします。
  • インストール後、IronPDF はプロジェクトで利用できるようになります。

NuGetウェブサイトからのインストール

IronPDF の機能、互換性、およびダウンロードに関する詳細情報については、NuGet 上の IronPDF ページをご覧ください。

DLLを利用したインストール

また、DLL ファイルを使用して IronPDF をプロジェクトに直接組み込むこともできます。DLL を含む ZIP ファイルをダウンロードするには、IronPDF ダウンロードリンクをクリックしてください。 ファイルを解凍してプロジェクトに DLL を追加してください。

ロジックを実装する

NSwag と CodeGeneration.CSharp を連携させて IronPDF と共に利用することで、開発者は API ドキュメントとクライアントコードをより迅速に生成できます。 統合ワークフローは以下の手順を含みます。

  1. クライアントコードを生成する: Swagger 仕様から C# クライアントコードを生成するために NSwag.CodeGeneration.CSharp を使用します。 このステップでは、API エンドポイントとの通信のためのクライアントクラスとメソッドの生成が自動化されます。
  2. NSwag を利用してデータを取得する: CodeGeneration.CSharp を使用して Swagger 仕様から JSON ドキュメントを生成します。 この段階では、リクエスト/レスポンス形式、認証方法、API クライアントエンドポイントを人間が理解できるドキュメントとして作成します。
  3. JSON から PDF への変換: IronPDF を使用して、生成されたコードの結果を PDF ドキュメントに変換します。 この段階では、HTML テキストを共有および配布可能な洗練された PDF ドキュメントに変換します。
  4. 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();
Imports IronPdf
Imports System.Text
Imports System.Collections.Generic

Private sb As New StringBuilder()

For Each item In result
	sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>")
Next item

Dim renderer = New HtmlToPdf()
Dim pdf = renderer.RenderHtmlAsPdf(sb.ToString())
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF generated successfully!")
Console.ReadKey()
$vbLabelText   $csharpLabel

上記のコードは、結果オブジェクトから取得したデータにアクセスし、DateTemperatureFTemperatureCSummary の各フィールドをループで段落に追加します。PDF の出力ファイルパスを指定し、PDF が正常に生成されたことを通知します。

上記コードの結果は以下です。

NSwag C# (開発者にとっての操作方法): 図 4 - 上記コードのサンプル出力

結論

CodeGeneration NSwag の CSharp や IronPDF のテクノロジーは、クライアントコード生成と API ドキュメントプロセスを効率化するために上手く連携します。 開発者は、これらのツールを C# アプリケーションに統合することで、API ドリブン ソリューションの作成をスピードアップし、API ドキュメントの作成を自動化し、プロフェッショナルな外観の PDF 出版物を生成できます。 IronPDF と組み合わせた NSwag.CodeGeneration.CSharp は、デスクトップ、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 形式に変換するため、そのレンダリングエンジンを使用してウェブベースのコンテンツから正確かつオフライン対応のドキュメントを作成します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。