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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.