[{"data":1,"prerenderedAt":173},["ShallowReactive",2],{"roadmap-fastapi":3},{"framework":4,"title":7,"description":8,"model":9},{"slug":5,"name":6},"fastapi","FastAPI","FastAPI Learning Roadmap","A guided path through FastAPI for technical interviews — work through each topic from fundamentals to advanced.",{"stages":10,"topicCount":170,"subtopicCount":171,"questionCount":172},[11,61,102,137],{"name":12,"summary":13,"topics":14,"gaps":59,"questionCount":60},"Getting Started","",[15,41],{"slug":16,"name":17,"description":18,"subtopics":19,"questionCount":40},"fundamentals","Fundamentals","Async\u002Fawait, ASGI, the request lifecycle and OpenAPI — the FastAPI foundation every interviewer expects you to understand cold.",[20,25,29,33,36],{"path":21,"subtopic":22,"difficulty":23,"questionCount":24,"blogPath":-1},"\u002Ffastapi\u002Ffundamentals\u002Fasync-basics","Async Basics","medium",15,{"path":26,"subtopic":27,"difficulty":23,"questionCount":28,"blogPath":-1},"\u002Ffastapi\u002Ffundamentals\u002Frequest-lifecycle","Request Lifecycle",14,{"path":30,"subtopic":31,"difficulty":32,"questionCount":24,"blogPath":-1},"\u002Ffastapi\u002Ffundamentals\u002Fpath-operations","Path Operations","easy",{"path":34,"subtopic":35,"difficulty":32,"questionCount":28,"blogPath":-1},"\u002Ffastapi\u002Ffundamentals\u002Ftype-hints","Type Hints & FastAPI",{"path":37,"subtopic":38,"difficulty":32,"questionCount":39,"blogPath":-1},"\u002Ffastapi\u002Ffundamentals\u002Fopenapi-docs","OpenAPI & Docs",13,71,{"slug":42,"name":43,"description":44,"subtopics":45,"questionCount":58},"routing","Routing & Parameters","Path parameters, query strings, request bodies, response models and APIRouter — how FastAPI maps URLs to handlers and shapes their inputs and outputs.",[46,49,52,55],{"path":47,"subtopic":48,"difficulty":32,"questionCount":28,"blogPath":-1},"\u002Ffastapi\u002Frouting\u002Fpath-query-params","Path & Query Parameters",{"path":50,"subtopic":51,"difficulty":23,"questionCount":39,"blogPath":-1},"\u002Ffastapi\u002Frouting\u002Frequest-body","Request Body",{"path":53,"subtopic":54,"difficulty":23,"questionCount":39,"blogPath":-1},"\u002Ffastapi\u002Frouting\u002Fresponse-models","Response Models",{"path":56,"subtopic":57,"difficulty":23,"questionCount":39,"blogPath":-1},"\u002Ffastapi\u002Frouting\u002Frouters","Routers & Structure",53,[],124,{"name":62,"summary":13,"topics":63,"gaps":100,"questionCount":101},"Building Core Skills",[64,83],{"slug":65,"name":66,"description":67,"subtopics":68,"questionCount":82},"pydantic","Pydantic & Validation","BaseModel, field validators, serialization and BaseSettings — Pydantic v2 powers FastAPI's entire request validation and config story.",[69,72,76,79],{"path":70,"subtopic":71,"difficulty":23,"questionCount":39,"blogPath":-1},"\u002Ffastapi\u002Fpydantic\u002Fmodels","Pydantic Models",{"path":73,"subtopic":74,"difficulty":23,"questionCount":75,"blogPath":-1},"\u002Ffastapi\u002Fpydantic\u002Fvalidation","Validators",12,{"path":77,"subtopic":78,"difficulty":23,"questionCount":39,"blogPath":-1},"\u002Ffastapi\u002Fpydantic\u002Fserialization","Serialization",{"path":80,"subtopic":81,"difficulty":23,"questionCount":75,"blogPath":-1},"\u002Ffastapi\u002Fpydantic\u002Fsettings","Settings Management",50,{"slug":84,"name":85,"description":86,"subtopics":87,"questionCount":99},"dependency-injection","Dependency Injection","Depends(), yield dependencies, class-based deps and lifespan — FastAPI's DI system is one of its most interview-tested features.",[88,91,95],{"path":89,"subtopic":90,"difficulty":23,"questionCount":75,"blogPath":-1},"\u002Ffastapi\u002Fdependency-injection\u002Fdepends-basics","Depends Basics",{"path":92,"subtopic":93,"difficulty":94,"questionCount":75,"blogPath":-1},"\u002Ffastapi\u002Fdependency-injection\u002Fadvanced-deps","Advanced Dependencies","hard",{"path":96,"subtopic":97,"difficulty":23,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fdependency-injection\u002Flifespan","Lifespan & App State",11,35,[],85,{"name":103,"summary":13,"topics":104,"gaps":135,"questionCount":136},"Going Deeper",[105,120],{"slug":106,"name":107,"description":108,"subtopics":109,"questionCount":119},"security","Security & Auth","OAuth2, JWT tokens and API keys — common FastAPI auth patterns that come up in both system-design and code-review interview rounds.",[110,113,116],{"path":111,"subtopic":112,"difficulty":94,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fsecurity\u002Foauth2","OAuth2",{"path":114,"subtopic":115,"difficulty":94,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fsecurity\u002Fjwt","JWT Tokens",{"path":117,"subtopic":118,"difficulty":23,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fsecurity\u002Fapi-keys","API Keys",33,{"slug":121,"name":122,"description":123,"subtopics":124,"questionCount":134},"database","Database Integration","SQLAlchemy sync and async sessions, Alembic migrations — how to wire a database into a FastAPI app without blocking the event loop.",[125,128,131],{"path":126,"subtopic":127,"difficulty":23,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fdatabase\u002Fsqlalchemy","SQLAlchemy (Sync)",{"path":129,"subtopic":130,"difficulty":94,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fdatabase\u002Fasync-db","Async Database",{"path":132,"subtopic":133,"difficulty":23,"questionCount":75,"blogPath":-1},"\u002Ffastapi\u002Fdatabase\u002Fmigrations","Alembic Migrations",34,[],67,{"name":138,"summary":13,"topics":139,"gaps":168,"questionCount":169},"Advanced Topics",[140,154],{"slug":141,"name":142,"description":143,"subtopics":144,"questionCount":134},"testing","Testing","TestClient, AsyncClient, pytest-asyncio and dependency overrides — the testing patterns FastAPI teams reach for in production codebases.",[145,148,151],{"path":146,"subtopic":147,"difficulty":23,"questionCount":75,"blogPath":-1},"\u002Ffastapi\u002Ftesting\u002Ftest-client","TestClient",{"path":149,"subtopic":150,"difficulty":94,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Ftesting\u002Fasync-testing","Async Testing",{"path":152,"subtopic":153,"difficulty":23,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Ftesting\u002Fdependency-overrides","Dependency Overrides",{"slug":155,"name":156,"description":157,"subtopics":158,"questionCount":134},"deployment","Deployment & Middleware","Uvicorn, Gunicorn, CORS middleware and BackgroundTasks — deploying FastAPI apps and tuning them for production traffic.",[159,162,165],{"path":160,"subtopic":161,"difficulty":23,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fdeployment\u002Fuvicorn-gunicorn","Uvicorn & Gunicorn",{"path":163,"subtopic":164,"difficulty":23,"questionCount":75,"blogPath":-1},"\u002Ffastapi\u002Fdeployment\u002Fmiddleware","Middleware",{"path":166,"subtopic":167,"difficulty":23,"questionCount":98,"blogPath":-1},"\u002Ffastapi\u002Fdeployment\u002Fbackground-tasks","Background Tasks",[],68,8,28,344,1782244083099]