0
0
FastAPIframework~20 mins

ASGI and async-first architecture in FastAPI - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
ASGI Async Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
1:30remaining
What is the output of this FastAPI async endpoint?
Consider this FastAPI endpoint using async def. What will the client receive when calling /hello?
FastAPI
from fastapi import FastAPI
app = FastAPI()

@app.get('/hello')
async def hello():
    return {'message': 'Hello, async world!'}
A{"message": "Hello, async world!"}
BHello, async world!
CAn error because async functions cannot return dict
DA JSON string with key 'hello' and value 'world'
Attempts:
2 left
💡 Hint
Remember that FastAPI automatically converts dict returns to JSON responses.
lifecycle
intermediate
1:30remaining
What happens when an async FastAPI endpoint awaits a slow function?
Given this code, what is the behavior when a client calls /wait?
from fastapi import FastAPI
import asyncio
app = FastAPI()

@app.get('/wait')
async def wait():
    await asyncio.sleep(2)
    return {'status': 'done'}
AThe server blocks all other requests for 2 seconds before responding
BThe client receives an immediate empty response, then the final response after 2 seconds
CThe server crashes because asyncio.sleep cannot be awaited
DThe server handles other requests during the 2 seconds wait asynchronously
Attempts:
2 left
💡 Hint
Think about how async functions allow other tasks to run while waiting.
📝 Syntax
advanced
2:00remaining
Which option will cause a syntax error in this async FastAPI endpoint?
Identify the option that will cause a syntax error when defining an async FastAPI endpoint.
FastAPI
from fastapi import FastAPI
app = FastAPI()
A
@app.get('/test')
def test():
    await some_async_func()
    return {'msg': 'ok'}
B
@app.get('/test')
async def test():
    return {'msg': 'ok'}
C
@app.get('/test')
async def test():
    await some_async_func()
    return {'msg': 'ok'}
D
}'ko' :'gsm'{ nruter    
:)(tset fed cnysa
)'tset/'(teg.ppa@
Attempts:
2 left
💡 Hint
Remember that 'await' can only be used inside async functions.
🔧 Debug
advanced
2:00remaining
Why does this FastAPI async endpoint raise a RuntimeError?
Examine this code snippet. Why does calling /error raise a RuntimeError?
from fastapi import FastAPI
import asyncio
app = FastAPI()

@app.get('/error')
def error():
    asyncio.create_task(asyncio.sleep(1))
    return {'status': 'started'}
ABecause asyncio.sleep cannot be used in FastAPI endpoints
BBecause asyncio.create_task must be called inside an async function
CBecause the endpoint is missing an await keyword
DBecause FastAPI does not support background tasks
Attempts:
2 left
💡 Hint
Check where asyncio.create_task is allowed to run.
🧠 Conceptual
expert
2:30remaining
What is the main advantage of ASGI over WSGI in FastAPI's async-first architecture?
Choose the best explanation for why FastAPI uses ASGI instead of WSGI.
AASGI only supports synchronous code which improves stability
BASGI is simpler to implement and requires less code than WSGI
CASGI supports asynchronous concurrency allowing multiple requests to be handled simultaneously without blocking
DASGI automatically caches all responses to speed up the server
Attempts:
2 left
💡 Hint
Think about how async code benefits server concurrency.