Netflix provides Feign as an abstraction over REST-based calls, by which microservices can communicate with each other, but developers don’t have to bother about REST internal details.
1.Add the feign dependency to your project
e.g.
<dependency>
<groupId>org.springframework. cloud</groupId>
<artifactId>spring-cloud- starter-feign</artifactId>
</dependency>
2.Tell to project that we will use Feign client, so scan its annotation, add the below annotation to your application class
@EnableFeignClients
3. Now, we have to create an interface where we declare the services we want to call. Please note that Service Request mapping is same as the Actual Service Rest URL.
@FeignClient(name=”MySearch” ) //Service Id of service you want to call
public interface MySearchServiceProxy {
–
–
–
}
4. Add or create a Controller where we autowire our Feign Interface so Spring can Inject actual implementation during runtime.
@RefreshScope
@RestController
public class FeignMySearchController {
@Autowired
MySearchServiceProxy proxyService;
–
–
–
–
}