IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Ocelot .NET (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Ocelot API Gateway é uma biblioteca .NET que implementa o padrão de gateway de API comumente usado em gateways de API para lidar com solicitações em vários microsserviços. Ele funciona como um gateway de API leve, encaminhando solicitações de clientes para serviços subsequentes. Este artigo oferece uma visão aprofundada de como o gateway de API Ocelot se posiciona entre os clientes e os serviços downstream, abordando sua instalação, configuração, principais recursos e exemplos práticos para demonstrar suas capacidades. Também exploraremos a Visão Geral do IronPDF e a API do Ocelot em conjunto.

O que é Ocelot .NET?

Ocelot .NET (Como Funciona para Desenvolvedores): Figura 1 - Página inicial do Ocelot .NET

Ocelot é uma solução de gateway de API de código aberto para aplicações .NET , projetada para facilitar o roteamento de requisições entre múltiplos microsserviços. Ele atua como um proxy reverso, gerenciando solicitações HTTP de clientes e encaminhando-as para os serviços apropriados em um ambiente ASP.NET Core . Desenvolvido em ASP.NET Core, o Ocelot integra-se perfeitamente ao ecossistema .NET , oferecendo um conjunto robusto de recursos essenciais para aplicações modernas.

Principais características do ocelote

Roteamento

A principal funcionalidade do Ocelot é sua capacidade de roteamento. Ele relaciona as solicitações recebidas às rotas de serviço apropriadas com base na configuração especificada pelos desenvolvedores e pode ser integrado a mecanismos de descoberta de serviços. Isso inclui suporte para roteamento curinga, o que é particularmente útil ao lidar com versões de API variáveis ​​ou inúmeros endpoints de serviço.

Middleware / Manipuladores de delegação

O Ocelot permite que os desenvolvedores injetem middleware ou manipuladores personalizados que podem processar solicitações e respostas antes que elas cheguem ao cliente ou ao serviço. Isso é útil para adicionar cabeçalhos, registrar solicitações ou até mesmo modificar a estrutura da resposta conforme necessário.

Balanceamento de carga

O Ocelot oferece suporte a diversas estratégias de balanceamento de carga prontas para uso, como Round Robin, Menor Conexão e um provedor personalizado caso nenhuma das estratégias predefinidas atenda aos requisitos. Essa funcionalidade garante que a carga seja distribuída uniformemente entre os serviços disponíveis, aumentando a resiliência e a eficiência geral da aplicação.

Autenticação e Autorização

Garantir a segurança dos endpoints da API é fundamental, e o Ocelot oferece suporte para integração com provedores de autenticação existentes, como o Identity Server. Ele oferece suporte a esquemas de autenticação populares, incluindo JWT e OAuth2, e permite um controle preciso sobre o acesso do usuário aos serviços.

Limitação de taxa e QoS

A limitação de taxa é essencial para prevenir abusos e garantir o uso justo dos serviços, limitando o número de solicitações que um usuário pode fazer em um determinado período. Opções de Qualidade de Serviço (QoS), como a configuração de tempos limite e novas tentativas, garantem que os serviços permaneçam disponíveis e responsivos sob diversas condições e cargas de rede.

Configurando o Ocelot em um projeto .NET

Para integrar o Ocelot ao seu projeto, você precisa instalar o pacote Ocelot via NuGet e configurá-lo na classe Program:

dotnet add package Ocelot

Ocelot .NET (Como Funciona para Desenvolvedores): Figura 2 - Instalar Ocelot .NET através do Gerenciador de Pacotes NuGet

Configure os serviços, incluindo o middleware de construtor de solicitações, na sua classe Startup.cs ou Program.cs para configurar o contêiner de serviços:

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

Configurando rotas no Ocelot

O Ocelot utiliza um arquivo de configuração, normalmente ocelot.json , para definir as regras de roteamento. Aqui está um exemplo mais complexo que demonstra múltiplas configurações de rotas:

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

Esta configuração especifica como as solicitações para o gateway de API são roteadas para diferentes serviços downstream com base no caminho e no método HTTP, usando o arquivo JSON para configuração.

Utilizando o IronPDF com o Ocelot .NET

Ocelot .NET (Como Funciona para Desenvolvedores): Figura 3 - Página inicial do IronPDF

A combinação do Ocelot com a conversão de HTML para PDF do IronPDF em uma aplicação .NET oferece uma solução poderosa, permitindo direcionar solicitações de geração de PDF para um serviço específico ou tratá-las internamente. Neste guia, vou orientá-lo na configuração de um aplicativo .NET Core básico que usa o Ocelot como um gateway de API e o IronPDF para gerar PDFs a partir de HTML.

O IronPDF se destaca na conversão de HTML para PDF , garantindo a preservação precisa dos layouts e estilos originais. É perfeito para criar PDFs a partir de conteúdo da web, como relatórios, faturas e documentação. Com suporte para arquivos HTML, URLs e strings HTML brutas, o IronPDF produz facilmente documentos PDF de alta qualidade.

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

Etapa 1: Configurar o aplicativo Web .NET Core

Primeiro, crie um novo projeto de API Web .NET Core . Você pode fazer isso usando a CLI do .NET ou o Visual Studio.

Utilizando a CLI do .NET :

dotnet new webapi -n OcelotWith IronPDF
cd OcelotWith IronPDF
SHELL

Passo 2: Adicionar os pacotes necessários

Você precisa instalar o Ocelot e o IronPDF. Você pode adicionar esses pacotes via NuGet.

dotnet add package Ocelot
dotnet add package IronPdf
SHELL

Etapa 3: Configurar o Ocelot

Adicione um arquivo ocelot.json à raiz do seu projeto com o seguinte conteúdo para configurar o roteamento do Ocelot. Esta configuração pressupõe que você deseja que o Ocelot direcione as solicitações de geração de PDF para um caminho específico que será tratado pelo IronPDF dentro do mesmo aplicativo.

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

Etapa 4: Configurar o arquivo Startup.cs

Atualize o arquivo Startup.cs para incluir o middleware do Ocelot. Certifique-se também de configurar seu aplicativo para usar arquivos estáticos, pois o IronPDF pode precisar carregar recursos do sistema de arquivos local.

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

Etapa 5: Implementar a geração de PDFs com o IronPDF

Crie um novo controlador chamado PdfController.cs na sua pasta Controllers. Este controlador irá lidar com as solicitações de geração de 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#

Etapa 6: Execute o aplicativo

Certifique-se de que seu aplicativo esteja configurado corretamente para escutar nas portas especificadas em ocelot.json . Você pode configurar isso em Properties/launchSettings.json .

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

Agora, execute sua aplicação e você deverá ser capaz de postar conteúdo HTML em http://localhost:5000/generatepdf e receber um PDF em resposta.

Ocelot .NET (Como Funciona para Desenvolvedores): Figura 4

Este exemplo demonstra uma implementação básica do Ocelot com o IronPDF dentro da mesma aplicação. Para cenários de produção, considere proteger seus endpoints, lidar com situações de erro e otimizar o processo de geração de PDFs com base em seus requisitos específicos.

Conclusão

Em conclusão, o Ocelot é uma excelente escolha para gerenciar e rotear requisições em uma arquitetura de microsserviços. Suas funcionalidades robustas, como roteamento, balanceamento de carga, suporte a middleware e autenticação, fazem dele uma ferramenta poderosa para qualquer desenvolvedor .NET . Seguindo os passos detalhados fornecidos, você pode integrar efetivamente o Ocelot em seus projetos .NET para otimizar suas necessidades de API Gateway.

Além disso, se você precisar de recursos de geração de PDF, a integração do IronPDF com o Ocelot é simples e aprimora a funcionalidade do seu aplicativo. O IronPDF oferece um período de teste gratuito e licenças a partir de uma solução econômica para suas necessidades de PDF.

Ao utilizar o Ocelot e o IronPDF em conjunto, você pode construir uma infraestrutura de microsserviços abrangente e eficiente que atenda aos requisitos de roteamento e geração de documentos.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.