Может ли клиент Spring Cloud Feign использовать общий интерфейс с Spring Web Controller?
Создание конечной точки и клиента с помощью Spring MVC и Feign Client (с использованием Spring Cloud). У меня была мысль, что, поскольку оба конца должны иметь одинаковые аннотации - и что они должны быть в значительной степени синхронизированы. Может быть, я мог бы определить их в интерфейсе и сделать это с двух сторон.
Проверяя это, я был несколько удивлен, что это действительно работает для конца веб-Spring.
Но я не могу найти способ сделать то же самое для клиента Feign.
У меня в основном есть интерфейс:
@RequestMapping("/somebaseurl")
public interface ServiceInterface {
@RequestMapping(value = "/resource/{identifier}", method = RequestMethod.POST)
public SomeResource getResourceByIdentifier(String identifier);
}
А потом RestController
@RestController
public class ServiceController implements ServiceInterface {
public SomeResource getResourceByIdentifier(@PathVariable("identifier") String identifier) {
// Do some stuff that gets the resource
return new SomeResource();
}
}
И, наконец, Feign Client
@FeignClient("serviceName")
public interface ServiceClient extends ServiceInterface {
}
Клиент Feign, похоже, не читает унаследованные аннотации. Так есть ли другой способ сделать то же самое? Где я могу превратить ServiceInterface в клиент Feign, не комментируя его напрямую?