ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
Ocelot API ゲートウェイは、複数のマイクロサービスにまたがるリクエストを処理するAPIゲートウェイで一般的に使用されるAPIゲートウェイパターンを実装した.NETライブラリです。 軽量なAPIゲートウェイとして機能し、クライアントからのリクエストを下流のサービスにルーティングします。 この記事では、Ocelot APIゲートウェイがどのようにクライアントとダウンストリーム・サービスの間に位置するのか、そのインストール、設定、主な機能、そしてその機能を実証する実践的な例について詳しく説明します。 また、以下を探りますIronPDFの概要Ocelot APIと組み合わせて。
Ocelotは、複数のマイクロサービス間でのリクエストのルーティングを容易にするために設計された、.NETアプリケーション向けのオープンソースのAPIゲートウェイソリューションです。 それはリバースプロキシとして機能し、クライアントからのHTTPリクエストを管理し、ASP.NET Core環境で適切なサービスにルーティングします。 ASP.NET Core上で開発されたOcelotは、.NETエコシステムとシームレスに統合され、現代のアプリケーションに不可欠な堅牢な機能セットを提供します。
Ocelot の機能の中心には、そのルーティング機能があります。 それは、開発者によって指定された構成に基づいて、受信要求を適切なサービスルートにマッチングし、サービスディスカバリーメカニズムと統合することができます。 これは、ワイルドカードルーティングのサポートが含まれており、特に異なるAPIバージョンや多数のサービスエンドポイントを扱う際に役立ちます。
Ocelotは、開発者がカスタムミドルウェアやハンドラーを挿入して、クライアントやサービスに到達する前にリクエストやレスポンスを処理できるようにします。これは、ヘッダーの追加、リクエストのログ記録、さらには必要に応じてレスポンス構造の変更に役立ちます。
Ocelotは、ラウンドロビン、最小接続数、または事前定義された戦略が要件に合わない場合にはカスタムプロバイダーなど、様々な負荷分散戦略を標準でサポートしています。 この機能により、負荷が利用可能なサービス全体に均等に分散されるため、アプリケーションの全体的なレジリエンスと効率が向上します。
APIエンドポイントのセキュリティは非常に重要であり、OcelotはIdentity Serverなどの既存の認証プロバイダとの統合をサポートしています。 それは、JWTやOAuth2を含む一般的な認証スキームをサポートしており、ユーザーのサービスへのアクセスを詳細に制御することが可能です。
レート制限は、乱用を防止し、公正なサービス利用を確保するために、特定の期間内にユーザーが行うリクエストの数を制限する重要な手段です。 サービス品質(QoS(サービス品質))タイムアウトとリトライの設定のようなオプションは、さまざまなネットワーク条件や負荷の下でも、サービスが利用可能で応答性を保つことを保証します。
プロジェクトにOcelotを統合するには、NuGetを介してOcelotパッケージをインストールし、Programクラスで設定する必要があります。
Install-Package IronPdf
Startup.cs または Program クラスでリクエストビルダーミドルウェアを含むサービスを構成し、サービスコンテナを設定します。
public void ConfigureServices(IServiceCollection services)
{
services.AddOcelot();
}
public async void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// Optionally handle ASP.NET Core environment settings
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// Start Ocelot
await app.UseOcelot();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddOcelot();
}
public async void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// Optionally handle ASP.NET Core environment settings
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// Start Ocelot
await app.UseOcelot();
}
Public Sub ConfigureServices(ByVal services As IServiceCollection)
services.AddOcelot()
End Sub
Public Async Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment)
' Optionally handle ASP.NET Core environment settings
If env.IsDevelopment() Then
app.UseDeveloperExceptionPage()
End If
' Start Ocelot
Await app.UseOcelot()
End Sub
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"
}
}
この設定は、パスとHTTPメソッドに基づいて、APIゲートウェイへのリクエストが異なる下流サービスにどのようにルーティングされるかをJSONファイルを使用して設定する方法を指定します。
Ocelotと 결合するIronPDFのHTMLからPDFへの変換.NET アプリケーションでは、PDF 生成リクエストを特定のサービスにルーティングするか、内部で処理する強力なソリューションを提供します。 ここでは、OcelotをAPI Gatewayとして使い、IronPDFを使ってHTMLからPDFを生成する基本的な.NET Coreアプリケーションのセットアップについて説明します。
まず、新しい .NET Core Web API プロジェクトを作成します。 これを行うには、.NET CLIまたはVisual Studioを使用できます。
.NET を使用する:
dotnet new webapi -n OcelotWithIronPDF
cd OcelotWithIronPDF
OcelotとIronPDFをインストールする必要があります。 これらのパッケージはNuGetを通して追加することができます。
dotnet add package Ocelot
dotnet add package IronPdf
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"
}
}
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
コントローラー フォルダーに新しいコントローラー 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 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 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 File(output, "application/pdf", "generated.pdf")
End Function
End Class
End Namespace
アプリケーションが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
ローカルホスト ポート5000 ジェネレート PDF
](http://localhost:5000/generatepdf)返信としてPDFを受け取ります。
この例は、同じアプリケーション内でOcelotとIronPDFを基本的に実装する方法を示しています。 本番環境においては、エンドポイントのセキュリティ確保、エラーシナリオの処理、特定の要件に基づいたPDF生成プロセスの最適化を検討してください。
結論として、Ocelotはマイクロサービスアーキテクチャにおけるリクエストの管理とルーティングに最適な選択肢です。 ルーティング、負荷分散、ミドルウェアのサポート、認証などの強力な機能により、.NET開発者にとって強力なツールとなります。 提供された詳細な手順に従うことで、Ocelotを.NETプロジェクトに効果的に統合し、APIゲートウェイのニーズを効率良く統一することができます。
また、PDF生成機能が必要な場合、IronPDFをOcelotと統合することは簡単で、アプリケーションの機能を向上させます。 IronPDFはライセンシングのための無料トライアルまた、ライセンスは、PDFニーズのための費用対効果の高いソリューションからスタートします。
OcelotとIronPDFを併用することで、ルーティングおよびドキュメント生成の要件を満たす、包括的かつ効率的なマイクロサービスインフラストラクチャを構築することができます。
9つの .NET API製品 オフィス文書用