Um cliente do Spring Cloud Feign pode compartilhar a interface com um Spring Web Controller?
Construindo um nó de extremidade e um cliente com Spring MVC e Feign Client (com spring cloud). Eu pensava que, já que os dois extremos precisam ter as mesmas anotações - e que eles devem estar praticamente sincronizados. Talvez eu possa defini-los em uma interface e ter as duas extremidades implementando isso.
Testando-o, fiquei um pouco surpreso que ele realmente funcione para o final da Web da Primavera.
Mas não consigo encontrar uma maneira de fazer o mesmo para um cliente Feign.
Basicamente, tenho a interface:
@RequestMapping("/somebaseurl")
public interface ServiceInterface {
@RequestMapping(value = "/resource/{identifier}", method = RequestMethod.POST)
public SomeResource getResourceByIdentifier(String identifier);
}
E então o RestController
@RestController
public class ServiceController implements ServiceInterface {
public SomeResource getResourceByIdentifier(@PathVariable("identifier") String identifier) {
// Do some stuff that gets the resource
return new SomeResource();
}
}
E, finalmente, o Feign Client
@FeignClient("serviceName")
public interface ServiceClient extends ServiceInterface {
}
O cliente Feign parece não ler as anotações herdadas. Então, existe alguma outra maneira de realizar a mesma coisa? Onde posso transformar o ServiceInterface no cliente Feign sem anotá-lo diretamente?