I've just put together a couple of APIs, pretty simple things, but FASTApi made the first one (a bunch of selects) go together super quick (except for matching a legacy query parameter structure that is only questionably legal), and the second one (call outs to subprocess.check_foo) was going well until I tried to access a raw post body from a sync context. As far as I can tell, it's just not possible with Starlette, so after spending as much time as I spent on the rest of the API, I ripped out FASTApi and dropped in flask.
There's a lot more messing with parameters, and it's not as clean, but it does work without dropping subprocess.
Yeah I also just ran into that issue a week ago. Had to look for awful hacks to try to get around it, ended up using Ray Serve to offload the processing to a background worker.
There's a lot more messing with parameters, and it's not as clean, but it does work without dropping subprocess.