IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Ocelot .NET (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

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 (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Ocelot .NET ana sayfası

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:

dotnet add package Ocelot

Ocelot .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Ocelot .NET'i NuGet Paket Yöneticisi ile kurun

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();
}

Ocelot'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"
    }
}
JSON

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 .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - IronPDF ana sayfası

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");
    }
}

Adı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
SHELL

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
SHELL

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"
    }
}
JSON

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();
    }
}

Adı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");
        }
    }
}
C#

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"
      }
    }
  }
}
JSON

Ş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.

Ocelot .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 4

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, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

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.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez