Sobre el proyecto

Feign es una biblioteca Java de código abierto que facilita la escritura de clientes HTTP mediante un enfoque declarativo y basado en anotaciones. En lugar de construir manualmente solicitudes HTTP, los desarrolladores definen una interfaz Java con anotaciones que describen el método HTTP, la plantilla de URL, las cabeceras y el cuerpo, y Feign genera la implementación en tiempo de ejecución. La biblioteca está inspirada en Retrofit, JAX-RS 2.0 y las especificaciones de WebSocket. Su objetivo principal es reducir la complejidad de vincular código Java a API HTTP de manera uniforme, independientemente de si la API sigue convenciones REST. Las características clave incluyen: - Definiciones de interfaz basadas en anotaciones mediante @RequestLine, @Param, @Headers, @QueryMap, @HeaderMap y @Body - Soporte de expresiones de plantilla URI conforme al nivel 1 de RFC 6570, con soporte limitado de expresiones de estilo de ruta de nivel 3 - Codificadores y decodificadores personalizables para JSON (Gson, Jackson, Moshi, Fastjson2), XML (JAXB, SAX) y SOAP - Backends de cliente HTTP conectables, incluidos OkHttp, Java 11 HTTP/2 Client y Ribbon para descubrimiento de servicios - Integración de cortacircuitos mediante Hystrix - Integración de registro con SLF4J - Opciones de solicitud configurables, como tiempos de espera de conexión/lectura y seguimiento de redirecciones - Soporte para múltiples destinos de interfaz con resolución dinámica de URL y decoración de solicitudes - Expansión de parámetros personalizada mediante la interfaz Expander Feign 10.x y versiones posteriores están construidas sobre Java 8 y son compatibles con Java 9, 10 y 11. Para compatibilidad con JDK 6, está disponible Feign 9.x. La hoja de ruta describe funciones planificadas, como caché de respuestas, soporte completo de expresiones de plantilla URI (niveles 1-4), refactorizaciones de las API de Logger y Retry, ejecución asíncrona mediante CompletableFuture, ejecución reactiva mediante Reactive Streams y soporte adicional de cortacircuitos como Resilience4J. Feign está disponible en Maven Central bajo el groupId io.github.openfeign. El proyecto incluye clientes de ejemplo para las API de GitHub y Wikipedia, y se integra con el proyecto Netflix Denominator.