IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Ocelot .NET (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

Ocelot API Gateway to biblioteka .NET, która implementuje wzorzec bramy API powszechnie stosowany w bramach API do obsługi żądań w wielu mikrousługach. Działa jako lekka brama API, kierując żądania od klientów do usług niższego szczebla. W tym artykułe szczegółowo omówiono, w jaki sposób brama API Ocelot działa jako pośrednik między klientami a usługami niższego szczebla, przedstawiając jej instalację, konfigurację, kluczowe funkcje oraz praktyczne przykłady ilustrujące jej możliwości. Omówimy również przegląd IronPDF oraz API Ocelot łącznie.

Czym jest Ocelot .NET?

Ocelot .NET (Jak to działa dla deweloperów): Rysunek 1 - Strona główna Ocelot .NET

Ocelot to rozwiązanie typu open source w postaci bramy API dla aplikacji .NET, zaprojektowane w celu ułatwienia routingu żądań między wieloma mikrousługami. Działa jako odwrotny serwer proxy, zarządzając żądaniami HTTP od klientów i kierując je do odpowiednich usług w środowisku ASP.NET Core. Ocelot, opracowany w oparciu o ASP.NET Core, płynnie integruje się z ekosystemem .NET, oferując solidny zestaw funkcji, które są kluczowe dla nowoczesnych aplikacji.

Najważniejsze cechy Ocelot

Trasy

Podstawą funkcjonalności Ocelot jest jego zdolność do routingu. Dopasowuje przychodzące żądania do odpowiednich tras usługowych w oparciu o konfigurację określoną przez programistów i może być zintegrowany z mechanizmami wykrywania usług. Obejmuje to obsługę routingu z użyciem symboli wieloznacznych, co jest szczególnie przydatne w przypadku różnych wersji API lub licznych punktów końcowych usług.

Oprogramowanie pośredniczące / Delegowanie procedur obsługi

Ocelot pozwala programistom na wstrzykiwanie niestandardowego oprogramowania pośredniczącego lub procedur obsługi, które mogą przetwarzać żądania i odpowiedzi, zanim dotrą one do klienta lub usługi. Jest to przydatne do dodawania nagłówków, rejestrowania żądań, a nawet modyfikowania struktury odpowiedzi w razie potrzeby.

Równoważenie obciążenia

Ocelot obsługuje wiele gotowych strategii równoważenia obciążenia, takich jak Round Robin, Least Connection oraz dostawca niestandardowy, jeśli żadna z predefiniowanych strategii nie spełnia wymagań. Ta funkcja zapewnia równomierny rozkład obciążenia między dostępne usługi, zwiększając ogólną odporność i wydajność aplikacji.

Uwierzytelnianie i autoryzacja

Zabezpieczenie punktów końcowych API ma kluczowe znaczenie, a Ocelot zapewnia obsługę integracji z istniejącymi dostawcami uwierzytelniania, takimi jak Identity Server. Obsługuje popularne schematy uwierzytelniania, w tym JWT i OAuth2, oraz umożliwia precyzyjną kontrolę dostępu użytkowników do usług.

Ograniczanie przepustowości i jakość usług (QoS)

Ograniczanie szybkości jest niezbędne, aby zapobiegać nadużyciom i zapewnić uczciwe korzystanie z usług poprzez ograniczenie liczby żądań, które użytkownik może wysłać w danym okresie. Opcje jakości usług (QoS), takie jak ustawianie limitów czasu i ponownych prób, zapewniają dostępność i responsywność usług w różnych warunkach sieciowych i przy różnym obciążeniu.

Konfiguracja Ocelot w projekcie .NET

Aby zintegrować Ocelot z projektem, należy zainstalować pakiet Ocelot za pośrednictwem NuGet i skonfigurować go w klasie Program:

dotnet add package Ocelot

Ocelot .NET (Jak to działa dla deweloperów): Rysunek 2 - Instalacja Ocelot .NET przez Menedżera Pakietów NuGet

Skonfiguruj usługi, w tym pośrednie oprogramowanie buforujące żądania, w swojej Startup.cs lub Program.cs klasie, aby skonfigurować kontener usług:

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

Konfiguracja tras w Ocelot

Ocelot używa pliku konfiguracyjnego, zazwyczaj ocelot.json, do definiowania reguł routingu. Oto bardziej złożony przykład ilustrujący konfiguracje wielu tras:

{
    "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

Ta konfiguracja określa, w jaki sposób żądania kierowane do bramy API są przekierowywane do różnych usług niższego szczebla w oparciu o ścieżkę i metodę HTTP, przy użyciu pliku JSON do konfiguracji.

Korzystanie z IronPDF z Ocelot .NET

Ocelot .NET (Jak to działa dla deweloperów): Rysunek 3 - Strona główna IronPDF

Połączenie Ocelot z funkcją konwersji HTML na PDF w IronPDF w aplikacji .NET zapewnia potężne rozwiązanie, w którym można kierować żądania generowania plików PDF do określonej usługi lub obsługiwać je wewnętrznie. W tym miejscu przeprowadzę Cię przez proces konfiguracji podstawowej aplikacji .NET Core, która wykorzystuje Ocelot jako bramę API oraz IronPDF do generowania plików PDF z HTML.

IronPDF wyróżnia się w konwersji HTML do PDF, zapewniając precyzyjne zachowanie oryginalnych układów i stylów. Idealnie nadaje się do tworzenia plików PDF z treści internetowych, takich jak raporty, faktury i dokumentacja. Dzięki obsłudze plików HTML, adresów URL i surowych ciągów znaków HTML, IronPDF z łatwością tworzy wysokiej jakości dokumenty 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");
    }
}

Krok 1: Skonfiguruj aplikację internetową .NET Core

Najpierw utwórz nowy projekt .NET Core Web API. Można to zrobić za pomocą interfejsu CLI platformy .NET lub programu Visual Studio.

Korzystanie z interfejsu CLI platformy .NET:

dotnet new webapi -n OcelotWith IronPDF
cd OcelotWith IronPDF
SHELL

Krok 2: Dodaj niezbędne pakiety

Należy zainstalować Ocelot i IronPDF. Pakiety te można dodać za pośrednictwem NuGet.

dotnet add package Ocelot
dotnet add package IronPdf
SHELL

Krok 3: Skonfiguruj Ocelot

Dodaj plik ocelot.json do katalogu głównego projektu z następującą treścią, aby skonfigurować routing Ocelot. Ta konfiguracja zakłada, że chcesz, aby Ocelot kierował żądania generowania plików PDF do określonej ścieżki, która będzie obsługiwana przez IronPDF w ramach tej samej aplikacji.

{
    "ReRoutes": [
        {
            "DownstreamPathTemplate": "/api/pdf",
            "DownstreamScheme": "https",
            "DownstreamHostAndPorts": [
                {
                    "Host": "localhost",
                    "Port": 5001
                }
            ],
            "UpstreamPathTemplate": "/generatepdf",
            "UpstreamHttpMethod": ["Post"]
        }
    ],
    "GlobalConfiguration": {
        "BaseUrl": "http://localhost:5000"
    }
}
JSON

Krok 4: Skonfiguruj plik Startup.cs

Zaktualizuj plik Startup.cs, aby uwzględnić oprogramowanie pośredniczące Ocelot. Upewnij się również, że skonfigurowałeś swoją aplikację do korzystania z plików statycznych, ponieważ IronPDF może wymagać ładowania zasobów z lokalnego systemu plików.

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

Krok 5: Wdrożenie generowania plików PDF za pomocą IronPDF

Utwórz nowy kontroler PdfController.cs w folderze Controllers. Ten kontroler będzie obsługiwał żądania generowania plików 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");
        }
    }
}
C#

Krok 6: Uruchom aplikację

Upewnij się, że Twoja aplikacja jest poprawnie skonfigurowana do nasłuchiwania na portach określonych w pliku ocelot.json. Można to ustawić w pliku Properties/launchSettings.json.

{
  "profiles": {
    "OcelotWith IronPDF": {
      "commandName": "Project",
      "launchBrowser": false,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
JSON

Teraz uruchom swoją aplikację, i powinieneś móc przesłać zawartość HTML do http://localhost:5000/generatepdf i otrzymać PDF w odpowiedzi.

Ocelot .NET (Jak to działa dla deweloperów): Rysunek 4

Ten przykład przedstawia podstawową implementację Ocelot z IronPDF w tej samej aplikacji. W scenariuszach produkcyjnych należy rozważyć zabezpieczenie punktów końcowych, obsługę scenariuszy błędów oraz optymalizację procesu generowania plików PDF w oparciu o konkretne wymagania.

Wnioski

Ocelot .NET (Jak to działa dla deweloperów): Rysunek 5 - Strona licencjonowania IronPDF

Podsumowując, Ocelot to doskonały wybór do zarządzania i kierowania żądaniami w architekturze mikrousług. Jego solidne funkcje, takie jak routing, równoważenie obciążenia, obsługa oprogramowania pośredniczącego i uwierzytelnianie, sprawiają, że jest to potężne narzędzie dla każdego programisty .NET. Śledząc szczegółowe kroki podane, możesz skutecznie zintegrować Ocelot w swoich projektach .NET, aby usprawnić potrzeby API Gateway.

Ponadto, jeśli potrzebujesz funkcji generowania plików PDF, integracja IronPDF z Ocelot jest prosta i zwiększa funkcjonalność Twojej aplikacji. IronPDF oferuje bezpłatną wersję próbną, a ceny licencji zaczynają się od opłacalnego rozwiązania dostosowanego do Twoich potrzeb związanych z plikami PDF.

Wykorzystując razem Ocelot i IronPDF, można zbudować kompleksową i wydajną infrastrukturę mikrousług, która spełnia zarówno wymagania dotyczące routingu, jak i generowania dokumentów.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta