Camel を RESTful Web サービスのクライアントとして活用したいとします。しかし、キャメルがそのような仕事に適しているかどうかはわかりません. また、cxf ではなく、http4 または ahc コンポーネントを使用したいと考えています。
一般に、必要なルートは 2 種類だけです。
- Bean から -> Json にマーシャリング -> 静的 URI を使用して Ahc に -> Json からアンマーシャリング -> Bean に。静的 uri の例:
ahc:http://host/api/user/create
- Bean から -> Json にマーシャリング -> 動的 URI を使用して Ahc に -> Json からアンマーシャリング -> Bean に。動的 uri の例:
ahc:http://host/api/user/id/1
次のような方法でそのようなルートを起動するサービス クラスがあると思います。
UserService {
@Autowired
protected CamelContext restApiCamelContext;
public UserCreateResponse createUser (UserModel user) {
... Camel's magick which starts create user route ...
}
public UserModel getUserById (Long id) {
... the id must be placed somehow into endpoint uri: http://host:port/api/user/id/${id} ...
... Camel's magick which get user by id ...
}
}
UserService は、Spring MVC コントローラーで使用されることになっています。
では、Camel の機能に基づいてそのような UserService を実装することは可能ですか? はいの場合、スプリングコントローラーにやってくる大量のユーザーリクエストの高圧下でうまく機能しますか? 100 近くの異なる uris で問題なく動作しますか?