Instructions for FastAPI Request and Response
For request and response handling in FastAPI:
- •
Request Object:
- •Inject:
from fastapi import Request. - •
@app.get("/") async def root(request: Request): ....
- •Inject:
- •
Response Models:
- •Declare:
@app.get("/items/{item_id}", response_model=Item). - •Use Pydantic for validation and serialization.
- •Declare:
- •
Headers and Cookies:
- •Headers:
from fastapi import Header. - •
def get_header(x_token: str = Header(None)): .... - •Cookies:
from fastapi import Cookie. - •Set in response:
Response.set_cookie(key="session", value="abc").
- •Headers:
- •
File Uploads:
- •
from fastapi import File, UploadFile. - •
async def upload(file: UploadFile = File(...)): contents = await file.read().
- •
- •
Custom Responses:
- •Return JSONResponse, HTMLResponse, etc.
- •Streaming:
StreamingResponse(generator()).
- •
Best Practices:
- •Validate with Pydantic: Add validators with
@validator. - •Handle errors with HTTPException.
- •Use response_model_exclude for sensitive data.
- •Validate with Pydantic: Add validators with
References
Use the shared references located at: ../_shared/reference.md