Hi All,
Thanks for your replies.
I agree with your points, and that's the kind of solution we were putting down. Our API Facade should be designed as a simple interface to a complex system, made of multiple reusable services exposing an API. The service orchestration should be accomplished by means of a middleware which, in our case, is Apache Camel. The facade is a simplified interface to the complexity of the mediation engine and the underlying services.
Considering that the service orchestration is done in Camel, so that it runs business processes in terms of pipes and filters (acting as a sort of lightweight ESB), do you still think the mapping between internal and external URLs should be done in the facade, instead of the middleware? Can they be considered as steps of a business process running in the middleware and started by the facade?
Since we're trying to design a distributed platform that in future will become a "complete" SOA platform, accessible from a public API layer (which can be our current API facade), do you think our approach is valid or it can be simplified/improved further?
Thanks again for your help,
Antonio