Feign is a declarative Java HTTP client framework that maps method signatures to REST API requests. It functions as an HTTP interface mapper, allowing the creation of type-safe clients by defining service interfaces with annotations to eliminate manual request logic.
The framework features a pluggable HTTP transport layer, which decouples request definition from execution by routing network traffic through interchangeable underlying HTTP engines.
It provides a comprehensive request management pipeline including interceptors for modifying headers, policy-driven retry logic for failure recovery, and strategy-based encoders and decoders to transform request objects and response bodies. The toolset also includes capabilities for asynchronous request execution, traffic logging, and client metrics collection.