(Typing this email on a phone, so be aware of minor details being off. Make sure you read the GAE custom domain documentation for full accuracy.)
GAE custom domain supports wildcard - like *.
mydomain.com.
If configured so, when accessing
foo.mydomain.com, it will first try to see if you have a service called foo. If yes, it goes to that service. If not, then it goes to the default service.
In other words, what you want is feasible. All you need to do is configure wildcard in DNS and then call the dev service api-dev. Then
api-dev.mydomain.com will go to api-dev and rest goes to default.
However, I'd actually recommend against using the same project for both dev and prod. Using 2 projects will probably cause less headache in the long run since they will give you more isolation.
So overall my recommendation (which is also our company's setup):
- one project for one environment
- multiple services in the same project via DNS wildcard
Hope this is helpful.