I have an Android App, and a backend for that app deployed in Google AppEngine.
I am looking for something like an API gateway inside the google cloud which can route the app to a specific backend version, depending on the client version (e.g. passed via header?), without specifying the targeted backend version explicitly in the app (which would always require an app release).
For instance implemented in the client:
https://my-app.appspot.com (Header: X-MyApp-Appversion: 14)
Api Gateway:
for X-MyApp-AppVersion between 1 and 5 -> https://v1-dot-my-app.appspot.com
for X-MyApp-AppVersion between 6 and 11 -> https://v2-dot-my-app.appspot.com
for X-MyApp-AppVersion greater than 11 -> https://v3-dot-my-app.appspot.com
Already tried solutions:
Targeting the version directly in the app would require an app update every time we deploy a new version in the backend.
Overwriting existing backend versions would mean a downtime for the backend, I tried that once and lost >100 requests.
Using dispatch.yaml, you can only target specific services, not versions of a service.
The load balancer and traffic director seem to be more complicated and not really fitting for this purpose.