.NETヘルプ Ocelot .NET(開発者向けの動作方法) Curtis Chau 更新日:7月 28, 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 Ocelot API Gatewayは、複数のマイクロサービスにわたるリクエストを処理するためにAPIゲートウェイで一般的に使用されるAPIゲートウェイパターンを実装する.NETライブラリです。 それは軽量なAPIゲートウェイとして機能し、クライアントからのリクエストをダウンストリームサービスへルーティングします。 この記事では、Ocelot APIゲートウェイがクライアントとダウンストリームサービスの間にどのように位置するか、そのインストール、設定、主要機能、およびその機能を示す実用的な例を詳しく説明します。 また、IronPDF OverviewとOcelot APIの組み合わせも探ります。 Ocelot .NETとは何ですか? Ocelotは、.NETアプリケーション向けのオープンソースAPIゲートウェイソリューションであり、複数のマイクロサービスにわたるリクエストのルーティングを容易にするよう設計されています。 それはリバースプロキシとして機能し、クライアントからのHTTPリクエストを管理し、ASP.NET Core環境で適切なサービスにルーティングします。 ASP.NET Core上で開発されたOcelotは、.NETエコシステムとシームレスに統合し、現代のアプリケーションに必要な強力な機能を提供します。 Ocelotの主な機能 ルーティング Ocelotの機能の中核は、そのルーティング能力です。 開発者によって指定された設定に基づいて受信リクエストを適切なサービスルートに一致させ、サービス発見メカニズムと統合することができます。 これは特に、異なるAPIバージョンや多数のサービスエンドポイントを扱う際に有用なワイルドカードルーティングのサポートを含みます。 ミドルウェア / デリゲートハンドラ Ocelotは、開発者がクライアントまたはサービスにリクエストおよびレスポンスが到達する前にそれらを処理できるカスタムミドルウェアまたはハンドラを挿入することを可能にします。これは、ヘッダーを追加したり、リクエストを記録したり、必要に応じてレスポンス構造を変更したりするのに役立ちます。 負荷分散 Ocelotは、事前定義されたいずれの戦略も要件に合わない場合に、ラウンドロビン、最小接続、およびカスタムプロバイダなどのさまざまな負荷分散戦略をサポートします。 この機能は、利用可能なサービス間で負荷を均等に分配し、アプリケーションの全体的な回復力と効率を向上させます。 認証と認可 APIエンドポイントのセキュリティは重要であり、Ocelotは、Identity Serverのような既存の認証プロバイダとの統合をサポートします。 JWTやOAuth2などの人気のある認証方式をサポートし、サービスへのユーザーアクセスをきめ細かく制御できます。 レート制限とQoS レート制限は、サービスの乱用を防ぎ、特定の期間内にユーザーが行うことができるリクエストの数を制限することにより、公平な使用を確保するために重要です。 サービスが様々なネットワーク条件や負荷の下で利用可能で応答性を維持するために、タイムアウトや再試行の設定などのサービス品質(QoS)オプションを提供します。 .NETプロジェクトでのOcelotの設定 プロジェクトにOcelotを統合するには、NuGetを介してOcelotパッケージをインストールし、Programクラスでそれを設定する必要があります: dotnet add package Ocelot Startup.csまたはProgram.cs クラスにおいて、サービスコンテナを設定するためにサービスやリクエストビルダーミドルウェアを構成します。 public void ConfigureServices(IServiceCollection services) { // Add Ocelot services to the service collection services.AddOcelot(); } public async void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // Use the developer exception page when in development mode if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // Start Ocelot middleware await app.UseOcelot(); } public void ConfigureServices(IServiceCollection services) { // Add Ocelot services to the service collection services.AddOcelot(); } public async void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // Use the developer exception page when in development mode if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // Start Ocelot middleware await app.UseOcelot(); } Public Sub ConfigureServices(ByVal services As IServiceCollection) ' Add Ocelot services to the service collection services.AddOcelot() End Sub Public Async Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment) ' Use the developer exception page when in development mode If env.IsDevelopment() Then app.UseDeveloperExceptionPage() End If ' Start Ocelot middleware Await app.UseOcelot() End Sub $vbLabelText $csharpLabel Ocelotのルート設定 Ocelotは通常、ocelot.jsonという設定ファイルを使用してルーティングルールを定義します。 こちらは複数のルート設定例を示します。 { "ReRoutes": [ { "DownstreamPathTemplate": "/api/users/{id}", "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "userapi.com", "Port": 443 } ], "UpstreamPathTemplate": "/users/{id}", "UpstreamHttpMethod": ["Get"] }, { "DownstreamPathTemplate": "/api/products/{id}", "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "productapi.com", "Port": 443 } ], "UpstreamPathTemplate": "/products/{id}", "UpstreamHttpMethod": ["Get"] } ], "GlobalConfiguration": { "BaseUrl": "http://yourgateway.com" } } この設定は、APIゲートウェイへのリクエストがパスとHTTPメソッドに基づいてどのように異なるダウンストリームサービスにルーティングされるかを指定し、JSONファイルを使用して設定します。 IronPDFとOcelot .NETの使用 .NETアプリケーションでIronPDFのHTML-to-PDF変換を使用してOcelotを組み合わせることは、PDF生成リクエストを特定のサービスにルーティングしたり内部で処理したりできる強力なソリューションを提供します。 ここでは、基本的な.NET Coreアプリケーションを設定し、APIゲートウェイとしてOcelotを使用し、HTMLからPDFを生成するIronPDFを実装する手順を説明します。 IronPDF は HTML から PDF への変換に秀でており、元のレイアウトとスタイルを正確に保存します。 これは、レポート、請求書、ドキュメントなどの Web ベースのコンテンツから PDF を作成するのに最適です。 HTML ファイル、URL、または生の HTML 文字列のサポートにより、IronPDF は高品質な PDF ドキュメントを簡単に生成します。 using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 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"); // 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"); // 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(); // 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"); // 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"); // 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() ' 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") ' 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") ' 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 ステップ1: .NET Core Webアプリケーションのセットアップ まず、新しい.NET Core Web APIプロジェクトを作成します。 これは.NET CLIまたはVisual Studioを使用して行うことができます。 .NET CLIを使用する場合: dotnet new webapi -n OcelotWithIronPDF cd OcelotWithIronPDF dotnet new webapi -n OcelotWithIronPDF cd OcelotWithIronPDF SHELL ステップ2: 必要なパッケージの追加 OcelotとIronPDFをインストールする必要があります。 これらのパッケージはNuGetを介して追加できます。 dotnet add package Ocelot dotnet add package IronPdf dotnet add package Ocelot dotnet add package IronPdf SHELL ステップ3: Ocelotの構成 ocelot.jsonファイルをプロジェクトのルートに追加して、Ocelotのルーティングを設定します。 この設定は、OcelotがPDF生成リクエストを同一アプリケーション内のIronPDFが処理する特定のパスにルーティングすることを前提としています。 { "ReRoutes": [ { "DownstreamPathTemplate": "/api/pdf", "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 5001 } ], "UpstreamPathTemplate": "/generatepdf", "UpstreamHttpMethod": ["Post"] } ], "GlobalConfiguration": { "BaseUrl": "http://localhost:5000" } } ステップ4: Startup.cs の構成 Startup.csを更新してOcelotのミドルウェアを含めます。 IronPDFがローカルファイルシステムから資産をロードする必要がある可能性があるため、静的ファイルを使用するようにアプリケーションを構成することも確認してください。 public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddOcelot(); } public async void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); await app.UseOcelot(); } } public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddOcelot(); } public async void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); await app.UseOcelot(); } } Public Class Startup Public Sub ConfigureServices(ByVal services As IServiceCollection) services.AddControllers() services.AddOcelot() End Sub Public Async Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment) If env.IsDevelopment() Then app.UseDeveloperExceptionPage() End If app.UseRouting() app.UseAuthorization() app.UseEndpoints(Sub(endpoints) endpoints.MapControllers() End Sub) Await app.UseOcelot() End Sub End Class $vbLabelText $csharpLabel ステップ5: IronPDFによるPDF生成の実装 Controllersフォルダ内に新しいコントローラPdfController.csを作成します。 このコントローラはPDF生成リクエストを処理します。 using Microsoft.AspNetCore.Mvc; using IronPdf; namespace OcelotWithIronPDF.Controllers { [ApiController] [Route("api/[controller]")] public class PdfController : ControllerBase { [HttpPost] public IActionResult CreatePdfFromHtml([FromBody] string htmlContent) { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); var output = pdf.BinaryData; // Return the PDF as a file result return File(output, "application/pdf", "generated.pdf"); } } } using Microsoft.AspNetCore.Mvc; using IronPdf; namespace OcelotWithIronPDF.Controllers { [ApiController] [Route("api/[controller]")] public class PdfController : ControllerBase { [HttpPost] public IActionResult CreatePdfFromHtml([FromBody] string htmlContent) { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); var output = pdf.BinaryData; // Return the PDF as a file result return File(output, "application/pdf", "generated.pdf"); } } } Imports Microsoft.AspNetCore.Mvc Imports IronPdf Namespace OcelotWithIronPDF.Controllers <ApiController> <Route("api/[controller]")> Public Class PdfController Inherits ControllerBase <HttpPost> Public Function CreatePdfFromHtml(<FromBody> ByVal htmlContent As String) As IActionResult Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf(htmlContent) Dim output = pdf.BinaryData ' Return the PDF as a file result Return File(output, "application/pdf", "generated.pdf") End Function End Class End Namespace $vbLabelText $csharpLabel ステップ6: アプリケーションの実行 ocelot.jsonで指定したポートをリッスンするようにアプリケーションが正しく設定されていることを確認します。 これはProperties/launchSettings.jsonで設定できます。 { "profiles": { "OcelotWithIronPDF": { "commandName": "Project", "launchBrowser": false, "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } } 今、アプリケーションを実行し、http://localhost:5000/generatepdfにHTMLコンテンツを投稿し、PDFを応答として受け取ることができるはずです。 この例は、同一アプリケーション内でIronPDFとOcelotを使用した基本的な実装を紹介しています。 本番環境のシナリオは、エンドポイントを保護し、エラーシナリオを処理し、特定の要件に基づいてPDF生成プロセスを最適化することを検討してください。 結論 結論として、Ocelotはマイクロサービスアーキテクチャでリクエストの管理およびルーティングを行うのに優れた選択肢です。 ルーティング、負荷分散、ミドルウェアサポート、認証などの強力な機能により、どの.NET開発者にとっても強力なツールとなります。 提供された詳細な手順に従うことにより、Ocelotを.NETプロジェクトに効果的に統合してAPIゲートウェイのニーズを合理化できます。 さらに、PDF生成機能を必要とする場合は、OcelotとIronPDFを統合することで、アプリケーションの機能を向上させることが簡単です。 IronPDFは無料トライアルを提供しており、ライセンスはお手頃な価格から始まります。 OcelotとIronPDFを一緒に活用することで、ルーティングとドキュメント生成の要件を満たす包括的で効率的なマイクロサービスインフラストラクチャを構築できます。 よくある質問 Ocelotは.NETアプリケーションにおけるマイクロサービスのコミュニケーションをどのように改善できるでしょうか? OcelotはAPIゲートウェイとして機能し、.NETアプリケーション内の複数のマイクロサービス間でHTTPリクエストの効率的なルーティングと管理を容易にします。ルーティング、負荷分散、認証などの機能を提供し、サービス間のコミュニケーションを効率化します。 IronPDFと一緒にOcelotを使用する利点は何ですか? OcelotをIronPDFと統合することで、.NETアプリケーション内でPDF生成リクエストを効率的にルーティングすることができます。IronPDFはHTMLからPDFへの変換時に元のレイアウトやスタイルを維持するため、レポートや請求書などのWebベースのコンテンツ生成に最適です。 どのようにしてOcelotを負荷分散のために構成しますか? Ocelotは、ラウンドロビンや最小接続数などのさまざまな負荷分散戦略をサポートしており、通常ocelot.jsonと呼ばれるJSONファイルを介して構成できます。これにより、マイクロサービス間のトラフィックの均等な分配が保証されます。 Ocelotのアーキテクチャにおいてミドルウェアはどんな役割を果たしますか? Ocelotのミドルウェアはカスタムハンドラーを挿入してリクエストとレスポンスを処理することができます。これによりヘッダーの追加、ロギング、レスポンスの修正などのタスクが可能になり、APIゲートウェイの柔軟性と機能性が向上します。 どのようにして.NETプロジェクトにOcelotをセットアップしますか? .NETプロジェクトにOcelotをセットアップするには、まずNuGetを通じてOcelotパッケージをインストールし、ProgramクラスにOcelotサービスを追加し、設定ファイルでルートを定義します。このセットアップにより、APIリクエストのルーティングと管理が容易になります。 Ocelotはどのような戦略を使ってルーティングを処理しますか? Ocelotはocelot.jsonファイルに指定された設定駆動型のルーティングを使用して、APIゲートウェイから適切な下流サービスへリクエストを誘導します。ワイルドカードルーティングやサービス発見メカニズムをサポートし、柔軟なルーティング設定が可能です。 OcelotはどのようにしてAPIアクセスのセキュリティを確保しますか? OcelotはIdentity Serverなどの認証プロバイダと統合し、JWTやOAuth2スキームをサポートしてAPIアクセスをセキュアにします。これによりユーザーの許可を管理し、エンドポイントの保護を保証します。 OcelotはPDF生成のワークフローを最適化するために使用できますか? はい、OcelotはIronPDFを使用するようなPDF生成専用サービスにリクエストをルーティングすることができます。この設定により、リクエストを効率的に処理し、変換時にドキュメントの忠実度を保持することでPDFワークフローが最適化されます。 Ocelotはどのようにしてサービス発見メカニズムと統合されますか? OcelotはConsulやEurekaのようなサービス発見メカニズムとの統合をサポートし、これによりサービスの現在の状態に基づいてリクエストを動的にルーティングします。この統合により、マイクロサービスアーキテクチャにおけるサービス管理が簡素化されます。 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パターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む Microsoft.Extensions.Caching.Memoryの例(PDF付き)in C#NHibernate C#(開発者向けの...
更新日 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パターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む