Routing for a proxy

kirill-ageev
Participant II

So I have 2 proxies with basepaths:

" something/*"

"something/else"

The question is - how does Apigee determine which proxy should handle this request and is there guarantee that request will always hit "something/else" if it is requested and not "something/*"?

Solved Solved
0 1 282
1 ACCEPTED SOLUTION

kirill-ageev
Participant II

The Edge maintains classification tree which contains the API name, revisions, basepaths, environment etc. Using this the request gets routed. If two APIs have a part of the basepath same, then Edge will first check if there's a specific path. If available, then the request is routed to that API.
If the specified path is not available, then the request is routed to the other API.

In the example, if the request has the path "something/else", then the request is routed to API with the basepath "something/else".

if the request has the path "something/123", then the request is routed to API with the basepath "something/*".

Please note, if the API with the basepath "something/else" is undeployed for some time. And during this time, if an API request comes with the path "something/else", then the request is routed to API with the basepath "something/*".

View solution in original post

1 REPLY 1

kirill-ageev
Participant II

The Edge maintains classification tree which contains the API name, revisions, basepaths, environment etc. Using this the request gets routed. If two APIs have a part of the basepath same, then Edge will first check if there's a specific path. If available, then the request is routed to that API.
If the specified path is not available, then the request is routed to the other API.

In the example, if the request has the path "something/else", then the request is routed to API with the basepath "something/else".

if the request has the path "something/123", then the request is routed to API with the basepath "something/*".

Please note, if the API with the basepath "something/else" is undeployed for some time. And during this time, if an API request comes with the path "something/else", then the request is routed to API with the basepath "something/*".