Hi everyone,
I have multiple Apigee API proxies in the same environment. I am sharing only 2 examples here, but the actual requirement applies to around 71 SOAP APIs.
All of these APIs receive requests in a SOAP envelope, and each request contains one common attribute in the SOAP body that can be used for routing.
For example, I have APIs like:
-
customerdetails -
accountdetails
Each API currently works with its own base path, such as:
-
/api/v1/customerdetails -
/api/v1/accountdetails
But the business also wants all of them to be callable directly from the same domain root, for example:
https://apigee.mock.com/
The idea is:
-
if the SOAP attribute value is
customerdetails, route to thecustomerdetailsAPI -
if the value is
accountdetails, route to theaccountdetailsAPI -
and similarly for many other APIs
The problem is that when I add:
<BasePath>/</BasePath>
to multiple proxies, deployment fails because / is already claimed by another proxy, which makes sense from a routing perspective.
Since this requirement applies to around 71 APIs, I want to understand the best architecture in Apigee for this kind of implementation.
My main concerns are:
-
What is the best design approach for handling this at scale?
-
Should I create a single dispatcher proxy on
/and route internally based on the SOAP attribute? -
Should I use proxy chaining to forward from one root proxy to the existing proxies?
-
Is it better to merge all logic into one proxy, or keep separate proxies and use one routing layer?
-
Which approach is better from a performance, maintainability, and response time perspective?
I would really appreciate best-practice guidance from anyone who has implemented something similar in Apigee for a large number of SOAP APIs.
Thanks.
