.NETヘルプ OpenAPI .NET(開発者向けの動作方法) Curtis Chau 更新日:6月 22, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article OpenAPI(以前はSwaggerとして知られていた)は、RESTful APIを構築および記述するための仕様です。開発者がAPIの構造を標準化された形式で定義することを可能にし、さまざまなツールやサービスがREST APIを効果的に理解して対話し、フィードバックを提供できるようにします。 .NETエコシステムでは、OpenAPI .NETの統合は、APIの作成、文書化、消費を容易にするためのいくつかのライブラリとツールによって容易にされます。 この記事では、OpenAPIのサポート仕様と、IronPDFを使用してPDFファイルを作成し、API呼び出しの応答として返す方法について学びます。 .NETでのOpenAPIの設定 OpenAPIの.NETプロジェクトを開始するには、通常Swashbuckleライブラリを使用します。これにより、ASP.NET CoreのAPIのためのOpenAPI仕様やドキュメントが生成されます。 ステップ1: Swashbuckleのインストール まず、Visual StudioでNuGetを介してSwashbuckle.AspNetCoreパッケージをインストールする必要があります。 これをNuGetパッケージマネージャーコンソールを使用して行うことができます: Install-Package Swashbuckle.AspNetCore または、.NET CLIを使用して行います: dotnet add package Swashbuckle.AspNetCore dotnet add package Swashbuckle.AspNetCore SHELL ステップ2: Swashbuckleの設定 次に、ASP.NET CoreプロジェクトでSwashbuckleを設定する必要があります。 これは、Program.csファイルを更新してSwaggerサービスを追加し、Swaggerミドルウェアを設定することを含みます。 var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Configures Swagger/OpenAPI descriptions. builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run(); var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Configures Swagger/OpenAPI descriptions. builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run(); Dim builder = WebApplication.CreateBuilder(args) ' Add services to the container. builder.Services.AddControllers() ' Configures Swagger/OpenAPI descriptions. builder.Services.AddEndpointsApiExplorer() builder.Services.AddSwaggerGen() Dim app = builder.Build() ' Configure the HTTP request pipeline. If app.Environment.IsDevelopment() Then app.UseSwagger() app.UseSwaggerUI() End If app.UseHttpsRedirection() app.UseAuthorization() app.MapControllers() app.Run() $vbLabelText $csharpLabel APIドキュメントの生成と表示 Swashbuckleが設定されると、アプリケーションを実行することで、自動的にOpenAPIドキュメントが生成されます。 これらのOpenAPI記述はSwagger UIインターフェースに移動することで表示できます。 OpenAPI定義の使用 OpenAPI定義は、クライアントSDKの生成、APIのテスト、および異なるサービス間の一貫性を保証するために使用できる強力なツールです。 OpenAPIの仕様は、サービスのソースコードにアクセスせずに、サービスの機能を人間やコンピューターが理解できるようにする標準の言語に依存しないインターフェースを定義します。 カスタム注釈によるOpenAPIの拡張 Swashbuckleは、カスタム注釈でOpenAPIドキュメントを強化することを可能にします。 これらの注釈は、コントローラーやモデルに直接追加でき、APIの動作やデータ構造に関する追加情報を提供します。 例: カスタム注釈 using Microsoft.AspNetCore.Mvc; namespace WebApplication8.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet(Name = "GetWeatherForecast")] [SwaggerOperation(Summary = "Gets the weather forecast for the next 5 days")] [SwaggerResponse(200, "Successfully retrieved weather forecast")] public IEnumerable<WeatherForecast> Get() { return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); } } } using Microsoft.AspNetCore.Mvc; namespace WebApplication8.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet(Name = "GetWeatherForecast")] [SwaggerOperation(Summary = "Gets the weather forecast for the next 5 days")] [SwaggerResponse(200, "Successfully retrieved weather forecast")] public IEnumerable<WeatherForecast> Get() { return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); } } } Imports Microsoft.AspNetCore.Mvc Namespace WebApplication8.Controllers <ApiController> <Route("[controller]")> Public Class WeatherForecastController Inherits ControllerBase Private Shared ReadOnly Summaries() As String = { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" } Private ReadOnly _logger As ILogger(Of WeatherForecastController) Public Sub New(ByVal logger As ILogger(Of WeatherForecastController)) _logger = logger End Sub <HttpGet(Name := "GetWeatherForecast")> <SwaggerOperation(Summary := "Gets the weather forecast for the next 5 days")> <SwaggerResponse(200, "Successfully retrieved weather forecast")> Public Function [Get]() As IEnumerable(Of WeatherForecast) Return Enumerable.Range(1, 5).Select(Function(index) New WeatherForecast With { .Date = DateTime.Now.AddDays(index), .TemperatureC = Random.Shared.Next(-20, 55), .Summary = Summaries(Random.Shared.Next(Summaries.Length)) }).ToArray() End Function End Class End Namespace $vbLabelText $csharpLabel この例では、SwaggerOperationおよびSwaggerResponse属性を使用して、エンドポイントの詳細なOpenAPI記述や応答コードを提供しています。 出力 「実行」ボタンをクリックすると、次の応答を得ることができます。 IronPDF IronPDF for ASP.NETは、ASP.NETアプリケーション内でPDFドキュメントのシームレスな生成と操作を可能にする強力なツールです。 その直感的なAPIと強力な機能を備えた開発者は、PDF生成をウェブプロジェクトに簡単に統合し、ユーザーに強化されたドキュメント管理機能を提供できます。 PDFを一から作成するか、HTMLコンテンツをPDFに変換するか、画像やテキストなどの動的要素を追加するか、いずれの場合もIronPDFはプロセスを簡素化し、効率的でプロフェッショナルなドキュメント生成を保証します。 NuGetパッケージマネージャーを使用してインストールする手順: ASP.NETプロジェクトをVisual Studioで開き、「ツール」メニューに移動します。 「NuGetパッケージマネージャー」を選択し、「ソリューション用のNuGetパッケージを管理」をクリックします。 「参照」タブで「IronPDF」を検索し、希望のバージョンを選択します。 「インストール」をクリックして、プロジェクトにパッケージを追加します。 IronPDFとその依存関係は自動的にダウンロードおよび統合され、ASP.NETアプリケーションでその機能をシームレスに活用できるようになります。 API呼び出しに対する応答としてPDFファイルを取得 次のコードをコントローラー ファイルに追加してください。これはIronPDFを使用してPDFファイルを作成し、API呼び出しの応答として返します。 using Microsoft.AspNetCore.Mvc; using IronPdf; namespace WebApplication8.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet(Name = "GetWeatherForecast")] public IActionResult GetWeatherForecastPdf() { var htmlContent = @" <html> <head> <title>Weather Forecast</title> </head> <body> <h1>Weather Forecast</h1> <table> <tr> <th>Date</th> <th>Temperature (Celsius)</th> <th>Summary</th> </tr>"; var forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }); // Iterate over the forecasts and add data to the HTML string foreach (var forecast in forecasts) { htmlContent += $@" <tr> <td>{forecast.Date.ToShortDateString()}</td> <td>{forecast.TemperatureC}</td> <td>{forecast.Summary}</td> </tr>"; } htmlContent += @" </table> </body> </html>"; // Convert the HTML string to a PDF using IronPDF var renderer = new ChromePdfRenderer(); var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent); // Retrieve the byte array of the generated PDF var pdfBytes = pdfDocument.BinaryData; // Return the PDF file to the client return File(pdfBytes, "application/pdf", "WeatherForecast.pdf"); } } } using Microsoft.AspNetCore.Mvc; using IronPdf; namespace WebApplication8.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } [HttpGet(Name = "GetWeatherForecast")] public IActionResult GetWeatherForecastPdf() { var htmlContent = @" <html> <head> <title>Weather Forecast</title> </head> <body> <h1>Weather Forecast</h1> <table> <tr> <th>Date</th> <th>Temperature (Celsius)</th> <th>Summary</th> </tr>"; var forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }); // Iterate over the forecasts and add data to the HTML string foreach (var forecast in forecasts) { htmlContent += $@" <tr> <td>{forecast.Date.ToShortDateString()}</td> <td>{forecast.TemperatureC}</td> <td>{forecast.Summary}</td> </tr>"; } htmlContent += @" </table> </body> </html>"; // Convert the HTML string to a PDF using IronPDF var renderer = new ChromePdfRenderer(); var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent); // Retrieve the byte array of the generated PDF var pdfBytes = pdfDocument.BinaryData; // Return the PDF file to the client return File(pdfBytes, "application/pdf", "WeatherForecast.pdf"); } } } Imports Microsoft.AspNetCore.Mvc Imports IronPdf Namespace WebApplication8.Controllers <ApiController> <Route("[controller]")> Public Class WeatherForecastController Inherits ControllerBase Private Shared ReadOnly Summaries() As String = { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" } Private ReadOnly _logger As ILogger(Of WeatherForecastController) Public Sub New(ByVal logger As ILogger(Of WeatherForecastController)) _logger = logger End Sub <HttpGet(Name := "GetWeatherForecast")> Public Function GetWeatherForecastPdf() As IActionResult Dim htmlContent = " <html> <head> <title>Weather Forecast</title> </head> <body> <h1>Weather Forecast</h1> <table> <tr> <th>Date</th> <th>Temperature (Celsius)</th> <th>Summary</th> </tr>" Dim forecasts = Enumerable.Range(1, 5).Select(Function(index) New WeatherForecast With { .Date = DateTime.Now.AddDays(index), .TemperatureC = Random.Shared.Next(-20, 55), .Summary = Summaries(Random.Shared.Next(Summaries.Length)) }) ' Iterate over the forecasts and add data to the HTML string For Each forecast In forecasts htmlContent &= $" <tr> <td>{forecast.Date.ToShortDateString()}</td> <td>{forecast.TemperatureC}</td> <td>{forecast.Summary}</td> </tr>" Next forecast htmlContent &= " </table> </body> </html>" ' Convert the HTML string to a PDF using IronPDF Dim renderer = New ChromePdfRenderer() Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent) ' Retrieve the byte array of the generated PDF Dim pdfBytes = pdfDocument.BinaryData ' Return the PDF file to the client Return File(pdfBytes, "application/pdf", "WeatherForecast.pdf") End Function End Class End Namespace $vbLabelText $csharpLabel 添付のPDFファイルをダウンロードして開きます。 結論 OpenAPIは、以前はSwaggerとして知られており、Swashbuckleのようなライブラリを通じて.NETエコシステムでRESTful APIの設計とドキュメント化を簡素化し、ASP.NET Coreプロジェクトの自動APIドキュメント生成を促進します。 OpenAPIとIronPDFの相乗効果を示し、IronPDFの機能を活用してHTMLコンテンツからPDFファイルを生成し、API応答として返す方法を紹介し、ASP.NETアプリケーションの機能を強化しました。 OpenAPI標準を採用し、IronPDFの強力な機能を活用することで、開発者はAPIドキュメントのプラクティスを強化し、ユーザーに洗練された機能豊富なアプリケーションを提供できます。 IronPDFのライセンスに関する詳細情報は、IronPDFのライセンス詳細を参照してください。 さらに、より詳しい指導については、HTMLからPDFへの変換チュートリアルを探索できます。 よくある質問 ASP.NETアプリケーションでHTMLコンテンツをPDFに変換するにはどうすればいいですか? ASP.NETアプリケーションではIronPDFを使ってHTMLコンテンツをPDFに変換できます。IronPDFの機能を活用することで、HTML文字列やファイルをPDFドキュメントにレンダリングし、APIレスポンスとして提供したり、文書管理のために保存したりすることができます。 OpenAPIは.NETエコシステムにおいてどのような役割を果たしていますか? OpenAPIは、RESTful APIの定義とドキュメント化を標準化された方法で提供することで、.NETエコシステムにおいて重要な役割を担っています。この統合は、多くの場合、Swashbuckleのようなツールを通じて行われ、OpenAPI仕様の生成を助け、ASP.NET Coreプロジェクト内でのAPIの容易な利用が可能になります。 .NETプロジェクトでSwashbuckleを使ってSwagger UIを設定するにはどうすればいいですか? .NETプロジェクトでSwashbuckleを使ってSwagger UIを設定するには、NuGetを通じてSwashbuckle.AspNetCoreパッケージをインストールしてください。次に、Program.csファイルでSwaggerサービスを設定し、Swagger UIを通じてAPIドキュメントの自動生成とアクセスを可能にするSwaggerミドルウェアをセットアップします。 .NETでOpenAPI定義からクライアントSDKを生成するにはどうすればいいですか? OpenAPI定義は、API呼び出しの複雑さを抽象化することで、APIの利用を容易にするクライアントSDKの生成に使用できます。.NETでは、Swashbuckleのようなツールがこれらの定義を生成し、その後AutoRestのようなツールと共に使用して、様々なプログラミング言語でクライアントSDKを作成します。 OpenAPIドキュメントでカスタムアノテーションを使用する利点は何ですか? OpenAPIドキュメントのカスタムアノテーションは、API仕様の明確さと詳細を向上させます。.NETでは、Swashbuckleを使用して、SwaggerOperationやSwaggerResponseといった属性を使用し、説明やレスポンスコードを追加することで、APIドキュメントをより情報豊かで開発者にとって理解しやすくします。 ASP.NET CoreでPDFファイルをAPIレスポンスとして配信するにはどうすればいいですか? ASP.NET CoreでPDFファイルをAPIレスポンスとして配信するには、IronPDFを使用します。IronPDFのレンダリングメソッドを使用してHTMLコンテンツからPDFを生成し、ASP.NET CoreのIActionResultを使用してPDFファイルをレスポンスの一部として出力します。 OpenAPIとPDF生成ツールの組み合わせがASP.NETアプリケーションにもたらす利点は何ですか? OpenAPIとIronPDFのようなPDF生成ツールをASP.NETアプリケーションに組み合わせることで、包括的なAPIドキュメントが提供され、APIがプロフェッショナルなPDFドキュメントを返すことができます。この統合は、効率的な文書管理をサポートし、アプリケーションの総合的な機能を強化します。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む 更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む Humanizer C#(開発者向けの動作方法)Microsoft.Extensions.Caching.Memory...
更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む
更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む