Spring MVC と Feign Client (Spring Cloud を使用) を使用してエンドポイントとクライアントを構築します。私は、両端に同じ注釈が必要であり、それらがほぼ同期している必要があると考えていました。多分私はそれらをインターフェースで定義し、両端にそれを実装させることができます。
テストしてみると、Spring Web エンドで実際に機能することに少し驚きました。
しかし、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 クライアントにすることができる場所はどこですか?