Advanced usage of the Feign client

Feign supports inheritance and multiple inheritance; it helps to remove boilerplate code for a service to follow the same conventions. You can create a base API interface and inherit it for a specific API interface.

Let's see the example:

interface BaseAPI<T> { 
  @GetMapping("/health") 
  T get(); 
 
  @GetMapping("/all") 
  List<T> all(); 
} 

Let's define a specific API interface by inheriting the base interface methods:

interface CustomAPI extends BaseAPI<T> { 
  @GetMapping("/custom") 
  T custom(); 
} 

Sometimes the resource representations are also consistent. So, you can declare to accept type parameters on the base API interface and you can inherit this base API interface to the specific interfaces. Let's see the example: ...

Get Mastering Spring Boot 2.0 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.