IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

Ocelot .NET (Cómo Funciona para Desarrolladores)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 21 de abril de 2026

Ocelot API Gateway es una biblioteca .NET que implementa el patrón de gateway de API comúnmente utilizado en gateways de API para manejar solicitudes a través de múltiples microservicios. Actúa como un gateway de API ligero, enruta las solicitudes de los clientes a los servicios subyacentes. Este artículo proporciona una visión detallada de cómo el gateway de API Ocelot se sitúa entre los clientes y los servicios subyacentes, cubriendo su instalación, configuración, características clave y ejemplos prácticos para demostrar sus capacidades. También exploraremos IronPDF Overview y Ocelot API combinados.

¿Qué es Ocelot .NET?

Ocelot .NET (Cómo funciona para desarrolladores): Figura 1 - página de inicio de Ocelot .NET

Ocelot es una solución de gateway de API de código abierto para aplicaciones .NET, diseñada para facilitar la enrutación de solicitudes a través de múltiples microservicios. Actúa como un proxy inverso, gestionando las solicitudes HTTP de los clientes y enrutándolas a los servicios adecuados en un entorno ASP.NET Core. Desarrollado en ASP.NET Core, Ocelot se integra perfectamente con el ecosistema .NET, ofreciendo un conjunto robusto de características cruciales para aplicaciones modernas.

Características principales de Ocelot

Enrutamiento

En el núcleo de la funcionalidad de Ocelot está su capacidad de enrutamiento. Coincide las solicitudes entrantes con las rutas de servicio adecuadas según la configuración especificada por los desarrolladores y puede integrarse con mecanismos de descubrimiento de servicios. Esto incluye soporte para enrutamiento de comodín, que es particularmente útil al tratar con versiones de API variables o numerosos puntos finales de servicio.

Middleware / Manejadores delegados

Ocelot permite a los desarrolladores inyectar middleware o manejadores personalizados que pueden procesar solicitudes y respuestas antes de que lleguen al cliente o al servicio. Esto es útil para agregar encabezados, registrar solicitudes o incluso modificar la estructura de la respuesta según sea necesario.

Equilibrio de carga

Ocelot admite una variedad de estrategias de balanceo de carga de forma predeterminada, como Round Robin, Conexión Mínima y un proveedor personalizado si ninguna de las estrategias predefinidas se ajusta a los requisitos. Esta característica garantiza que la carga se distribuya equitativamente entre los servicios disponibles, mejorando la resiliencia y eficiencia general de la aplicación.

Autenticación y autorización

Asegurar los puntos finales de la API es crítico, y Ocelot proporciona soporte para integrarse con los proveedores de autenticación existentes, como Identity Server. Admite esquemas de autenticación populares, incluyendo JWT y OAuth2, y permite un control detallado sobre el acceso de los usuarios a los servicios.

Limitación de velocidad y calidad de servicio

La limitación de tasa es esencial para prevenir el abuso y asegurar el uso adecuado de los servicios al limitar la cantidad de solicitudes que un usuario puede hacer en un período determinado. Las opciones de Calidad de Servicio (QoS) como el establecimiento de límites de tiempo y reintentos aseguran que los servicios permanezcan disponibles y respondan bajo diversas condiciones de red y cargas.

Cómo configurar Ocelot en un proyecto .NET

Para integrar Ocelot en tu proyecto, necesitas instalar el paquete Ocelot a través de NuGet y configurarlo en la clase Program:

dotnet add package Ocelot

Ocelot .NET (Cómo funciona para desarrolladores): Figura 2 - Instalar Ocelot .NET a través del Administrador de paquetes NuGet

Configure los servicios, incluido el middleware del constructor de solicitudes, en su clase Startup.cs o Program.cs para configurar el contenedor de servicios:

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

Configuración de rutas en Ocelot

Ocelot utiliza un archivo de configuración, típicamente ocelot.json, para definir las reglas de enrutamiento. Aquí hay un ejemplo más complejo que demuestra configuraciones de múltiples rutas:

{
    "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 configuración especifica cómo las solicitudes al gateway de API se enrutan a diferentes servicios subyacentes basándose en el camino y el método HTTP, utilizando el archivo JSON para configuración.

Utilización de IronPDF con Ocelot .NET

Ocelot .NET (Cómo funciona para desarrolladores): Figura 3 - página de inicio de IronPDF

Combinar Ocelot con la Conversión de HTML a PDF de IronPDF en una aplicación .NET ofrece una solución poderosa donde puedes enrutar solicitudes de generación de PDF a un servicio específico o manejarlas internamente. Aquí, te guiaré a través de la configuración de una aplicación .NET Core básica que usa Ocelot como un Gateway de API e IronPDF para generar PDFs desde HTML.

IronPDF se destaca en la conversión de HTML a PDF, asegurando la preservación precisa de los diseños y estilos originales. Es perfecto para crear PDFs a partir de contenido basado en la web como informes, facturas y documentación. Con soporte para archivos HTML, URLs y cadenas HTML en bruto, IronPDF produce fácilmente documentos PDF de alta calidad.

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

Paso 1: Configurar la aplicación web .NET Core

Primero, crea un nuevo proyecto de API Web .NET Core. Puedes hacerlo usando la CLI de .NET o Visual Studio.

Usando la CLI de .NET:

dotnet new webapi -n OcelotWith IronPDF
cd OcelotWith IronPDF
SHELL

Paso 2: Añadir los paquetes necesarios

Necesitas instalar Ocelot e IronPDF. Puedes agregar estos paquetes vía NuGet.

dotnet add package Ocelot
dotnet add package IronPdf
SHELL

Paso 3: Configurar Ocelot

Agrega un archivo ocelot.json a la raíz de tu proyecto con el siguiente contenido para configurar el enrutamiento de Ocelot. Esta configuración asume que quieres que Ocelot enroute las solicitudes de generación de PDF a un camino específico que será manejado por IronPDF dentro de la misma aplicación.

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

Paso 4: Configurar Startup.cs

Actualiza Startup.cs para incluir el middleware de Ocelot. Asegúrate de configurar también tu aplicación para usar archivos estáticos, ya que IronPDF puede necesitar cargar archivos desde el sistema de archivos 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();
    }
}

Paso 5: Implementar la generación de PDF con IronPDF

Crea un nuevo controlador PdfController.cs en tu carpeta de Controllers. Este controlador manejará las solicitudes de generación 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#

Paso 6: Ejecutar la aplicación

Asegúrate de que tu aplicación esté correctamente configurada para escuchar en los puertos especificados en ocelot.json. Puedes establecer esto en Properties/launchSettings.json.

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

Ahora, ejecute su aplicación y debería poder enviar contenido HTML a http://localhost:5000/generatepdf y recibir un PDF como respuesta.

Ocelot .NET (Cómo funciona para desarrolladores): Figura 4

Este ejemplo muestra una implementación básica de Ocelot con IronPDF dentro de la misma aplicación. Para escenarios de producción, considera asegurar tus puntos finales, manejar escenarios de error y optimizar el proceso de generación de PDF según tus necesidades específicas.

Conclusión

En conclusión, Ocelot es una excelente opción para gestionar y enrutar solicitudes en una arquitectura de microservicios. Sus características robustas como enrutamiento, balanceo de carga, soporte de middleware y autenticación lo hacen una herramienta poderosa para cualquier desarrollador .NET. Siguiendo los pasos detallados proporcionados, puede integrar eficazmente Ocelot en sus proyectos .NET para optimizar sus necesidades de API Gateway.

Además, si necesitas capacidades de generación de PDF, integrar IronPDF con Ocelot es sencillo y mejora la funcionalidad de tu aplicación. IronPDF ofrece una prueba gratuita y las licencias comienzan desde una solución rentable para tus necesidades de PDF.

Al aprovechar Ocelot e IronPDF juntos, puedes construir una infraestructura de microservicios completa y eficiente que cumpla con los requisitos tanto de enrutamiento como de generación de documentos.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta