AYUDA .NET

Refit C# (Cómo funciona para desarrolladores)

Actualizado agosto 13, 2024
Compartir:

Introducción

Las mejores características de dos potentes bibliotecas se combinan para producir aplicaciones increíblemente eficaces integrando Refit con IronPDF en C#. Refit facilita el uso de API RESTful al permitir a los desarrolladores diseñar interfaces de API con características de C#, generando HTTP automáticamente y garantizando un acceso a la API seguro desde el punto de vista tipográfico. Por el contrario, IronPDF ofrece una amplia gama de potentes funciones para trabajar con archivos PDF, incluida la fusión y anotación de PDF, así como la conversión de contenido HTML. Cuando se combinan, estas bibliotecas permiten flujos de trabajo fluidos para la presentación y recuperación de datos. El desarrollo de aplicaciones basadas en datos puede hacerse más eficiente y productivo utilizando herramientas como Refit para recuperar datos de una API e IronPDF para producir informes PDF exhaustivos y excelentes basados en esos datos.

¿Qué es Refit C#?

Refit es un marco de trabajo de código abierto para .NET que utiliza una metodología declarativa y a prueba de tipos para simplificar el proceso de envío de peticiones HTTP a API RESTful. Refit produce automáticamente el código cliente HTTP necesario especificando los puntos finales de la API como interfaces C# adornadas con características. Esto reduce en gran medida la repetición y mejora la legibilidad del código. Al detectar los errores durante la compilación y no durante la ejecución, esta técnica garantiza que las firmas de los métodos coincidan correctamente con los puntos finales de la API.

Además, Refit gestiona la serialización y deserialización de JSON con facilidad, lo que permite a los desarrolladores interactuar con objetos C# en lugar de convertir manualmente las respuestas de la API. Al definir los métodos HTTP, las cabeceras y los parámetros directamente en las especificaciones de la interfaz, los atributos simplifican la configuración. Como el código del cliente necesita modificarse menos cuando se actualizan los puntos finales de la API, el código se simplifica y es más fácil de mantener.

Por ejemplo, Refit puede generar el nombre de usuario de la cadena de solicitud HTTP GET necesaria creando un método en una interfaz con una variable [Visite("/usuarios/{id}")] atributo. Esta solicitud puede realizarse a través de una llamada a un método de tipo seguro. Refit es una solución mucho más productiva para que los desarrolladores integren API en aplicaciones .NET, ya que elimina los quebraderos de cabeza asociados a la gestión de clientes HTTP.

Reajuste C# (Cómo funciona para los desarrolladores): Figura 1 - Refit: La biblioteca REST automática a prueba de tipos para .NET Core, Xamarin y .NET

Características de Refit C#

Disponibilidad de API seguras

Refit detecta errores en tiempo de compilación y se asegura de que las firmas de los métodos coincidan con los puntos finales de la API. La posibilidad de que se produzcan errores en tiempo de ejecución debidos a puntos finales no coincidentes o a una configuración incorrecta de las solicitudes disminuye gracias a esta seguridad de tipos.

Cliente HTTP declarativo

Los desarrolladores pueden utilizar las interfaces y atributos de C# para crear puntos finales de API, lo que se traduce en un código de solicitud HTTP más limpio y fácil de mantener. Este método declarativo abstrae la complejidad de implementar un método de solicitud HTTP por cliente.

Serialización y deserialización automáticas

Refit se encarga automáticamente de la conversión de objetos C# a datos JSON. Dado que los desarrolladores ya no tienen que serializar manualmente los cuerpos de las solicitudes ni deserializar las respuestas, la gestión de los datos es mucho más sencilla.

Configuración basada en atributos

Los atributos se utilizan para definir los métodos HTTP (como GET, POST, PUT y DELETE) y parámetros. Esto hace que la configuración sea sencilla y fácil de entender, ya que comprende cabeceras, cuerpo de la petición, contenido, parámetros de ruta y parámetros de consulta.

Programación asíncrona

Refit utiliza métodos basados en tareas para gestionar peticiones HTTP asíncronas y está diseñado para interactuar fácilmente con los modelos de programación asíncrona de .NET.

Navegadores adaptables

Los desarrolladores pueden personalizar el núcleo del cliente HTTP cambiando los números de tiempo de espera, la configuración predeterminada de las cabeceras y las configuraciones de los gestores de mensajes para las políticas de registro, autenticación y reintento.

Gestión integrada de errores

Refit dispone de funciones integradas para gestionar problemas HTTP, lo que facilita a los desarrolladores la incorporación de su propia lógica de gestión de errores personalizada.

Adaptabilidad

Los desarrolladores pueden utilizar varios formatos o manejar tipos de datos poco habituales gracias a la compatibilidad de Refit con convertidores de serialización y deserialización personalizados.

Combinación de la inyección de dependencia Integración

Refit se adapta perfectamente a las aplicaciones .NET actuales que siguen las prácticas recomendadas para la inyección de dependencias (DI) ya que es fácil de integrar en las aplicaciones DI.

Ayuda a la verificación

Para proteger las llamadas a la API, Refit simplifica la configuración de las cabeceras de autenticación, los métodos de interfaz, como los tokens portadores, y la autenticación básica.

Crear y configurar Refit C#

Los siguientes pasos pueden utilizarse para construir y configurar un cliente Refit en C#:

Crear un nuevo proyecto de Visual Studio

Crear un proyecto de consola es fácil con Visual Studio. Para crear una aplicación de consola en Visual Studio, siga estos pasos:

Antes de utilizar Visual Studioconfirme que está instalado en su ordenador.

Iniciar un nuevo proyecto

Abra Visual Studio, haga clic en la opción "Crear un nuevo proyecto".

Reajuste C# (Cómo funciona para desarrolladores): Figura 2 - En Visual Studio, haga clic en la opción "Crear un nuevo proyecto" y seleccione Console App.

En la selección de la izquierda del cuadro "Crear un nuevo proyecto", seleccione su lenguaje de programación preferido (C#, por ejemplo).

De la siguiente lista de referencia de plantillas de proyecto, puede elegir la "Aplicación de consola" o la "Aplicación de consola" (.NET Core)".

Dale un nombre a tu proyecto y elige su ubicación de almacenamiento.

Reajuste C# (Cómo funciona para los desarrolladores): Figura 3 - Configure su aplicación de consola especificando el nombre del proyecto, la ubicación y el nombre de la solución. A continuación, haga clic en Siguiente.

Seleccione el .NET Framework adecuado. A continuación, haga clic en "Crear" para crear el proyecto de aplicación Consola.

Reajuste C# (Cómo funciona para los desarrolladores): Figura 4 - Seleccione .NET Framework y, a continuación, haga clic en "Crear". Su proyecto de aplicación de consola se habrá creado correctamente.

Instalar Reequipar

Primero debe incluir la biblioteca Refit en su proyecto. Puede instalar el paquete NuGet Refit mediante el gestor de paquetes NuGet o utilizar la CLI .NET en Visual Studio para conseguirlo.

Utilización de la CLI .NET para la instalación:

dotnet add package Refit
dotnet add package Refit
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Definir interfaz API

Crea una interfaz para simbolizar tu API. Para definir los métodos HTTP y los puntos finales, utilice los atributos Refit.

using Refit;
using System.Threading.Tasks;
public interface IMyApi
{
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);
    [Post("/users")]
    Task<User> CreateUserAsync([Body] User user);
}
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    // Other properties...
}
using Refit;
using System.Threading.Tasks;
public interface IMyApi
{
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);
    [Post("/users")]
    Task<User> CreateUserAsync([Body] User user);
}
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    // Other properties...
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Crear y configurar el cliente Refit

Inicie el cliente Refit y ajuste su configuración según sea necesario. Esto puede implementarse directamente en tu código principal o en un servicio, entre otras ubicaciones de tu aplicación.

using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Configuración avanzada

Al configurar el HttpClient subyacente, puede personalizar aún más el cliente Refit. Por ejemplo, puede establecer tiempos de espera, aplicar atributos a las cabeceras, añadir cabeceras por defecto o utilizar gestores de mensajes para políticas de reintento, autenticación y registro.

using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
    public static async Task Main(string[] args)
    {
        var httpClient = new HttpClient(new HttpClientHandler
        {
            // Customize the HttpClientHandler as needed
        })
        {
            BaseAddress = new Uri("https://api.example.com"),
            Timeout = TimeSpan.FromSeconds(30)
        };
        // Add default headers if needed
        httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");
        var apiClient = RestService.For<IMyApi>(httpClient);
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
    public static async Task Main(string[] args)
    {
        var httpClient = new HttpClient(new HttpClientHandler
        {
            // Customize the HttpClientHandler as needed
        })
        {
            BaseAddress = new Uri("https://api.example.com"),
            Timeout = TimeSpan.FromSeconds(30)
        };
        // Add default headers if needed
        httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");
        var apiClient = RestService.For<IMyApi>(httpClient);
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Puede utilizar un consumo de API RESTful seguro y fácil de mantener creando y configurando un cliente Refit en C# siguiendo estas instrucciones.

Reajuste C# (Cómo funciona para desarrolladores): Figura 5 - Salida de la consola

Primeros pasos

Instalar ambas bibliotecas, configurar un cliente API sencillo que utilice Refit para recuperar datos y utilizar IronPDF para crear un PDF basado en esos datos son los primeros pasos para integrar Refit e IronPDF en un proyecto C#. He aquí los pasos para conseguirlo:

¿Qué es IronPDF?

Una biblioteca con muchas funciones para manejar documentos PDF en aplicaciones .NET se llama IronPDF. Con su amplio conjunto de funciones, los usuarios pueden crear PDF desde cero o a partir de material HTML, así como modificar documentos PDF preexistentes añadiendo, eliminando o cambiando partes. IronPDF ofrece a los desarrolladores una sólida API para crear, modificar y convertir archivos PDF, lo que facilita el trabajo con archivos PDF en aplicaciones .NET.

Reajuste C# (Cómo funciona para desarrolladores): Figura 6 - IronPDF for .NET: La biblioteca PDF de C#

Características principales de IronPDF

Conversión de HTML a PDF

IronPDF le permite crear documentos PDF de alta calidad utilizando contenido HTML, incluidos CSS y JavaScript. Esta funcionalidad es muy útil para crear PDF a partir de contenidos dinámicos o páginas web.

Edición y manipulación de PDF

IronPDF ofrece herramientas de modificación para documentos PDF ya existentes. Es posible extraer páginas de un PDF, añadir texto, fotos, marcas de agua o notas, y combinar varios PDF en un solo documento.

Crear un PDF desde el principio

Con la API de IronPDF, puede añadir texto, fotos, formas y otros objetos a nuevos documentos PDF mediante programación. Esto permite generar dinámicamente facturas en PDF, informes y otros documentos.

Seguridad de los PDF

Puede gestionar el acceso y salvaguardar los datos críticos cifrando los documentos PDF con IronPDF y añadiendo seguridad mediante contraseña.

Formularios en PDF

Al introducir datos en campos de formulario, los usuarios pueden interactuar con documentos PDF creando y rellenando formularios PDF con IronPDF.

Extracciones de texto

IronPDF facilita la búsqueda, el análisis y la manipulación de datos de texto mediante la extracción de contenido textual de documentos PDF.

Transformación a formatos de imagen

IronPDF es adecuado para situaciones en las que se necesitan imágenes en lugar de PDF, ya que puede convertir documentos PDF a formatos de imagen comunes, como PNG, JPEG y BMP.

Instalar IronPDF

Utilice la CLI de .NET o el gestor de paquetes NuGet para añadir IronPDF a sus proyectos .NET.

dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
VB   C#

Integrar IronPDF con Refit C#

Analicemos un ejemplo de código C# que combina Refit con IronPDF. En este ejemplo, utilizaremos Refit para recuperar datos de una API RESTful ficticia y utilizaremos IronPDF para crear un documento PDF basado en esos datos. Este es el funcionamiento del siguiente código:

using System;
using IronPdf;
using Refit;
    public static async Task Main(string[] args)
    {
        var apiClient = RestService.For<IMyApi>("https://api.example.com");
        try
        {
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        GeneratePdf(user);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        var rand = new Random(100);
        // Create a new user
        var newUser = new User { Id = rand.Next(), Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
//Passing html string as method parameter
public static void GeneratePdf(User user)
{
    var htmlContent = $@"
    <html>
        <head>
            <style>
                body {{ font-family: Arial, sans-serif; }}
                h1 {{ color: navy; }}
                p {{ font-size: 14px; }}
            </style>
        </head>
        <body>
            <h1>User Details</h1>
            <p><strong>ID:</strong> {user.Id}</p>
            <p><strong>Name:</strong> {user.Name}</p>
        </body>
    </html>";
    // Create an IronPDF ChromePdfRenderer instance
    var renderer = new ChromePdfRenderer();
    var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
    // Save the PDF to a file
    var filePath = "UserDetails.pdf";
    pdfDocument.SaveAs(filePath);
    Console.WriteLine($"PDF generated and saved to {filePath}");
}
using System;
using IronPdf;
using Refit;
    public static async Task Main(string[] args)
    {
        var apiClient = RestService.For<IMyApi>("https://api.example.com");
        try
        {
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        GeneratePdf(user);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        var rand = new Random(100);
        // Create a new user
        var newUser = new User { Id = rand.Next(), Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
//Passing html string as method parameter
public static void GeneratePdf(User user)
{
    var htmlContent = $@"
    <html>
        <head>
            <style>
                body {{ font-family: Arial, sans-serif; }}
                h1 {{ color: navy; }}
                p {{ font-size: 14px; }}
            </style>
        </head>
        <body>
            <h1>User Details</h1>
            <p><strong>ID:</strong> {user.Id}</p>
            <p><strong>Name:</strong> {user.Name}</p>
        </body>
    </html>";
    // Create an IronPDF ChromePdfRenderer instance
    var renderer = new ChromePdfRenderer();
    var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
    // Save the PDF to a file
    var filePath = "UserDetails.pdf";
    pdfDocument.SaveAs(filePath);
    Console.WriteLine($"PDF generated and saved to {filePath}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Utilizando las características de Refit, construimos una interfaz API llamada IMyApi y proporcionamos el punto final para la obtención de datos de usuario. Construimos un cliente Refit para la API y recuperamos de forma asíncrona los datos del usuario en la función Main. En caso de que los datos se recuperen correctamente, el objeto de usuario se pasa al método GenerarPdf. Utilizando la clase ChromePdfRenderer de IronPDF, creamos HTML texto que representa los detalles del usuario en el método GeneratePdf y luego imprimirlo como un documento PDF. Después, el PDF creado se almacena en un archivo de disco.

Reajuste C# (Cómo funciona para desarrolladores): Figura 7 - Salida de la consola

A continuación se muestra una captura de pantalla del archivo PDF generado.

Reajuste C# (Cómo funciona para desarrolladores): Figura 8 - PDF de salida generado con IronPDF

Conclusión

En resumen, los desarrolladores que trabajan con API RESTful y producción de PDF disponen de una solución sólida y eficaz en forma de Refitcon IronPDF en C#. La interfaz Refit reduce el código repetitivo, mejora la capacidad de mantenimiento y ofrece un enfoque declarativo y seguro, lo que facilita el consumo de API. Sin embargo, IronPDF proporciona una amplia colección de herramientas para producir, modificar y trabajar con documentos PDF, lo que simplifica la creación de PDF de alta calidad a partir de texto HTML.

Los desarrolladores pueden recuperar fácilmente datos de las API con Refit y cree documentos PDF dinámicos con IronPDF a partir de esos datos integrando las dos herramientas. Los flujos de trabajo se agilizan gracias a esta integración, que también crea un sinfín de oportunidades para crear informes en PDF dinámicos y basados en datos, facturas y otros resultados basados en documentos.

Puede integrar IronPDF y otros IronSoftware en su pila de desarrollo de aplicaciones empresariales para ofrecer soluciones de software de gama alta y repletas de funciones para clientes y usuarios finales. Esta sólida base también facilitará los proyectos, los sistemas backend y la mejora de los procesos.

Los desarrolladores pueden aprovechar al máximo la prueba gratuita el coste de IronPDF es de 749 dólares. Estas tecnologías son una opción excelente para los proyectos modernos de desarrollo de software por su amplia documentación, su activa comunidad de desarrolladores en línea y sus actualizaciones periódicas.

Para saber más sobre cómo empezar con IronPDFvisite la página ejemplos de código y documentación página.

< ANTERIOR
CSLA .NET (Cómo funciona para desarrolladores)
SIGUIENTE >
NBuilder .NET (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 10,516,730 View Licenses >