
Ocelot .NET (Geliştiriciler İçin Nasıl Çalışır)
Ocelot API Gateway, bir API geçidi deseni uygulayan .NET kütüphanesidir ve API geçitlerinde yaygın olarak, birden fazla mikro hizmet üzerinden istekleri gerçekleştirmede kullanılır. Müşterilerden gelen istekleri daha sonraki hizmetlere yönlendiren hafif bir API geçidi olarak işlev görür. Bu makale, Ocelot API geçidinin müşteriler ve daha sonraki hizmetler arasında nasıl yer aldığını, kurulumunu, yapılandırmasını, anahtar özelliklerini ve yeteneklerini göstermek için pratik örnekler içeren derinlemesine bir incelemesini sağlar. IronPDF Genel Bakışını ve Ocelot API'sini birlikte keşfedeceğiz.
Ocelot .NET Nedir?

Ocelot, .NET uygulamaları için açık kaynak kodlu bir API geçidi çözümüdür ve birden fazla mikro hizmet üzerinde istek yönlendirmeyi kolaylaştırmak için tasarlanmıştır. Bir ters vekil olarak işlev görerek, istemcilerden gelen HTTP isteklerini yönetir ve bunları ASP.NET Core ortamındaki uygun hizmetlere yönlendirir. ASP.NET Core üzerine geliştirilmiştir ve .NET ekosistemiyle sorunsuz entegre olur ve modern uygulamalar için çok önemli olan sağlam bir özellik seti sunar.
Ocelot'un Temel Özellikleri
Yönlendirme
Ocelot'un işlevselliğinin oynak noktasında, yönlendirme yeteneği yer alır. Gelen istekleri, geliştiriciler tarafından belirtilen yapılandırmaya göre uygun hizmet yollarıyla eşleştiren ve hizmet keşif mekanizmaları ile entegre edilebilen bir özelliktir. Bu, özellikle farklı API sürümleri veya çok sayıda hizmet uç noktasıyla çalışırken kullanışlı olan wildcard yönlendirme desteğini içerir.
Ortam Yazılımı / Vekil İşleyiciler
Ocelot, geliştiricilerin, istekler ve yanıtlar müşteriye veya hizmete ulaşmadan önce işlem yapabilecekleri özel ortam yazılımı veya işleyicileri yerleştirmelerine olanak tanır. Bu, başlıklar eklemek, istekleri günlüğe kaydetmek veya gerektiğinde yanıt yapısını değiştirmek için kullanışlıdır.
Yük Dengeleme
Ocelot kutudan çıktığı haliyle Çember, Az Bağlantı ve hatta mevcut stratejilerden hiçbirine uygun olmayan bir gereksinim varsa özel sağlayıcı gibi çeşitli yük dengeleme stratejilerini destekler. Bu özellik, yükün kullanılabilir hizmetler arasında eşit şekilde dağıtılmasını sağlayarak, uygulamanın genel dayanıklılığını ve verimliliğini artırır.
Kimlik Doğrulama ve Yetkilendirme
API uç noktalarını güven altına almak kritik önem taşır ve Ocelot, mevcut kimlik doğrulama sağlayıcılarıyla, örneğin Identity Server ile entegrasyon desteği sağlar. JWT ve OAuth2 dahil popüler kimlik doğrulama şemalarını destekler ve kullanıcının hizmetlere erişimi üzerinde ince ayrıntılı kontrol sağlar.
Oran Sınırlandırma ve QoS
Oran sınırlandırma, kötüye kullanımın önlenmesi ve bir kullanıcının belirli bir dönem içinde yapabileceği istek sayısını sınırlayarak hizmetlerin adil kullanımı için esastır. Zaman aşımı ve tekrarları ayarlama gibi Hizmet Kalitesi (QoS) seçenekleri, hizmetlerin, çeşitli ağ koşulları ve yükler altında erişilebilir ve yanıt verir durumda kalmalarını sağlar.
.NET Projesinde Ocelot Ayarlamak
Projenize Ocelot'u entegre etmek için, Ocelot paketini NuGet aracılığıyla yüklemeniz ve Program sınıfında yapılandırmanız gerekir:

Hizmetleri yapılandırın, hizmet konteynerini kurmak için istek oluşturucu ara yazılımı da dahil olmak üzere, Startup.cs veya Program.cs sınıfınızda ayarlayın:
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(services As IServiceCollection)
' Add Ocelot services to the service collection
services.AddOcelot()
End Sub
Public Async Sub Configure(app As IApplicationBuilder, 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 SubOcelot'ta Rotaları Yapılandırmak
Ocelot, yönlendirme kurallarını tanımlamak için tipik olarak ocelot.json adlı bir yapılandırma dosyası kullanır. Birden fazla yol yapılandırmasını gösteren daha karmaşık bir örnektir:
{
"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"
}
}
Bu yapılandırma, API geçidine yapılan isteklerin, yol ve HTTP yöntemi temelinde farklı alt hizmetlere nasıl yönlendirileceğini belirtir ve JSON dosyası ayar için kullanılır.
Ocelot .NET ile IronPDF Kullanmak

Ocelot ile birlikte bir .NET uygulamasında IronPDF'in HTML-PDF Dönüşümünü birleştirmek, PDF üretim isteklerini belirli bir hizmete yönlendirebileceğiniz veya bunları dahili olarak ele alabileceğiniz güçlü bir çözüm sunar. Burada, Ocelot'u bir API Geçidi olarak ve IronPDF'i HTML'den PDF'ye dönüştürmek için kullanan temel bir .NET Core uygulamasını nasıl kuracağınızı kılavuzluk edeceğim.
IronPDF, HTML'den PDF'ye dönüşümde mükemmeldir, özgün düzenler ve stillerin hassas bir şekilde korunmasını sağlar. Raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri için destekle, IronPDF yüksek kaliteli PDF belgelerini kolayca üretir.
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 ClassAdım 1: .NET Core Web Uygulamasını Kurun
Öncelikle, yeni bir .NET Core Web API projesi oluşturun. .NET CLI veya Visual Studio kullanarak bunu yapabilirsiniz.
.NET CLI kullanarak:
dotnet new webapi -n OcelotWith IronPDF
cd OcelotWith IronPDF
Adım 2: Gerekli Paketleri Ekleyin
Ocelot ve IronPDF'i yüklemeniz gerekir. Bu paketleri NuGet aracılığıyla ekleyebilirsiniz.
dotnet add package Ocelot
dotnet add package IronPdf
Adım 3: Ocelot'u Yapılandırın
Ocelot'un yönlendirmesini yapılandırmak için projenizin köküne ocelot.json adlı bir dosya ekleyin. Bu ayar, Ocelot'un, IronPDF tarafından aynı uygulama içinde ele alınacak belirli bir yola PDF üretim isteklerini yönlendirmesini varsayar.
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/pdf",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 5001
}
],
"UpstreamPathTemplate": "/generatepdf",
"UpstreamHttpMethod": ["Post"]
}
],
"GlobalConfiguration": {
"BaseUrl": "http://localhost:5000"
}
}
Adım 4: Startup.cs'i Yapılandırın
Ocelot'un yazılım ortam yazılımını dahil etmek için Startup.cs dosyasını güncelleyin. Ayrıca, IronPDF'in yerel dosya sisteminden varlıkları yüklemesi gerekebileceği için uygulamanızı statik dosyaları kullanacak şekilde yapılandırdığınızdan emin olun.
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(services As IServiceCollection)
services.AddControllers()
services.AddOcelot()
End Sub
Public Async Sub Configure(app As IApplicationBuilder, 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 ClassAdım 5: IronPDF ile PDF Üretimini Uygulayın
Denetleyiciler klasörünüzde yeni bir PdfController.cs denetleyicisi oluşturun. Bu denetleyici, PDF üretim isteklerini ele alacaktır.
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");
}
}
}
Adım 6: Uygulamayı Çalıştırın
Uygulamanızın, ocelot.json dosyasında belirtilen portları dinleyecek şekilde doğru yapılandırıldığından emin olun. Bunu Properties/launchSettings.json içinde ayarlayabilirsiniz.
{
"profiles": {
"OcelotWith IronPDF": {
"commandName": "Project",
"launchBrowser": false,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Şimdi uygulamanızı çalıştırın ve http://localhost:5000/generatepdf adresine HTML içeriği gönderip, karşılığında bir PDF alabilmelisiniz.

Bu örnek, aynı uygulamada Ocelot ile IronPDF'in temel bir uygulamasını sergilemektedir. Üretim senaryoları için, uç noktalarınızı güvenceye almayı, hata senaryolarını ele almayı ve PDF üretim sürecini belirli gereksinimlerinize göre optimize etmeyi düşünün.
Sonuç
Sonuç olarak, Ocelot, bir mikro hizmet mimarisinde istekleri yönetmek ve yönlendirmek için mükemmel bir seçimdir. Yönlendirme, yük dengeleme, ortam yazılımı desteği ve kimlik doğrulama gibi güçlü özellikleri, herhangi bir .NET geliştiricisi için güçlü bir araç yapar. Sağlanan detaylı adımları izleyerek API Ağ Geçidi ihtiyaçlarınızı kolaylaştırmak için Ocelot'u .NET projelerinize etkili bir şekilde entegre edebilirsiniz.
Ayrıca, PDF üretim yeteneklerine ihtiyacınız varsa, IronPDF'i Ocelot ile entegre etmek basittir ve uygulamanızın işlevselliğini artırır. IronPDF, PDF ihtiyaçlarınız için uygun maliyetli bir çözümden başlayarak ücretsiz deneme ve lisans seçenekleri sunar.
Ocelot ve IronPDF'i birlikte kullanarak, hem yönlendirme hem de belge üretim gereksinimlerini karşılayan kapsamlı ve verimli bir mikro hizmet altyapısı oluşturabilirsiniz.

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.
İlgili Makaleler


