.NETヘルプ Ocelot .NET(開発者向けの仕組み) Jacob Mellor 更新日:2025年7月28日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る 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(); } $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"); } } $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(); } } $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"); } } } $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" } } } } ここで、アプリケーションを実行すると、HTML コンテンツを http://localhost:5000/generatepdf に投稿し、応答として PDF を受け取ることができるようになります。 この例は、同一アプリケーション内でIronPDFとOcelotを使用した基本的な実装を紹介しています。 本番環境のシナリオは、エンドポイントを保護し、エラーシナリオを処理し、特定の要件に基づいてPDF生成プロセスを最適化することを検討してください。 結論 結論として、Ocelot はマイクロサービスアーキテクチャにおけるリクエストの管理とルーティングに適した選択肢です。 ルーティング、負荷分散、ミドルウェアサポート、認証などの強力な機能により、ど for .NET開発者にとっても強力なツールとなります。 提供された詳細な手順に従うことにより、Ocelotを.NETプロジェクトに効果的に統合してAPIゲートウェイのニーズを合理化できます。 さらに、PDF生成機能を必要とする場合は、OcelotとIronPDFを統合することで、アプリケーションの機能を向上させることが簡単です。 IronPDF は 無料トライアルを提供し、ライセンスは PDF ニーズに対するコスト効果の高いソリューションから始まります。 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のようなサービス発見メカニズムとの統合をサポートし、これによりサービスの現在の状態に基づいてリクエストを動的にルーティングします。この統合により、マイクロサービスアーキテクチャにおけるサービス管理が簡素化されます。 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パターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む Microsoft.Extensions.Caching.Memoryの例(PDF付き)in C#NHibernate 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パターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む