FastAPI follows the UNIX philosophy of "do one thing, and do it well". By using Starlette and Pydantic, FastAPI provides you with powerful tools to build a beautiful API. This gives you a lot of freedom to decide how you organise the rest of your codebase. The level of freedom also comes with some challenges once a codebase grows.
In this talk we explore some of the common challenges in building FastAPI apps, and share how we solved them:
1. Minimizing the global state with dependency injection
2. Reducing the complexity of testing a FastAPI app
3. Pitfalls of async FastAPI
4. Supporting multiple authentication schemes
5. Modelling the relations between patch, response and database models