← Back to Tutorials
10. Query Parameters
from fastapi import FastAPI
app = FastAPI()
# Optional query param with default
@app.get("/items/")
def list_items(skip: int = 0, limit: int = 10):
return {"skip": skip, "limit": limit}
# Optional query param (can be None)
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None, short: bool = False):
return {"item_id": item_id, "q": q, "short": short}
# Required query param (no default)
@app.get("/search/")
def search(q: str):
return {"query": q}
# Type conversion
@app.get("/users/")
def get_users(active: bool = True, page: int = 1):
return {"active": active, "page": page}
# Multiple values
from typing import List
@app.get("/filter/")
def filter_items(tags: List[str] = None):
return {"tags": tags}
# URL: /filter/?tags=a&tags=b&tags=c
✏️ Exercise: Create an endpoint that accepts category (optional), min_price (optional float), and sort_by (default "name") query parameters.