Sobre el proyecto
Refit es una biblioteca REST automática de tipo seguro para .NET moderno, fuertemente inspirada en Retrofit de Square. Convierte definiciones de API REST en interfaces vivas, permitiendo a los desarrolladores definir contratos de API como interfaces de C# con atributos de método HTTP, y Refit genera la implementación que usa HttpClient para realizar llamadas.
La biblioteca admite múltiples plataformas, incluyendo WinUI, .NET Framework 4.6.2+, .NET 8/9/10/11, Blazor y Uno Platform. Incluye generadores de código fuente de Roslyn que producen clientes en tiempo de compilación, reduciendo la reflexión en tiempo de ejecución y habilitando aplicaciones recortadas y Native AOT.
Las características clave incluyen:
- Generación de código fuente con registro automático de clientes en .NET 5+
- Soporte para métodos HTTP Get, Post, Put, Delete, Patch y Head
- Parámetros de cadena de consulta dinámicos, incluyendo aplanamiento de objetos y formato de colecciones
- Soporte de contenido de cuerpo para JSON, JSON Lines, XML y envíos de formularios
- Cabeceras de solicitud estáticas y dinámicas, incluyendo autenticación Bearer
- Cargas multiparte con varios tipos de partes
- Tiempos de espera por solicitud y soporte de tokens de cancelación
- Herencia de interfaces y composición de múltiples APIs
- Métodos de interfaz predeterminados
- Integración con HttpClientFactory para inyección de dependencias
- Soporte de HttpClient personalizado
- Manejo integral de excepciones con ApiException y fábricas de excepciones personalizadas
- Soporte de pruebas mediante el paquete Refit.Testing con tablas de rutas declarativas
El generador de código fuente cubre la mayoría de las formas de solicitud, incluyendo parámetros de ruta, parámetros de consulta con alias y formato, contenido de cuerpo, cabeceras, cargas multiparte, propiedades y varios tipos de respuesta, incluyendo IAsyncEnumerable para respuestas transmitidas. Para formas que el generador no puede emitir, los métodos recurren al constructor de solicitudes de reflexión en tiempo de ejecución.
Refit también incluye analizadores que señalan problemas comunes de interfaz en tiempo de compilación, como plantillas de ruta inválidas, múltiples parámetros CancellationToken y tipos incorrectos de HeaderCollection, con correcciones de código para ajustes mecánicos.
La biblioteca proporciona múltiples paquetes NuGet: Refit (núcleo), Refit.HttpClientFactory (integración de DI), Refit.Newtonsoft.Json (soporte de JSON.NET), Refit.Testing (utilidades de prueba) y Refit.Reflection (respaldo de reflexión en tiempo de ejecución para herramientas de compilación antiguas).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.