Week 2
Week 2
Join the github classroom assignment with the following link:
Once you join your repository will be created https://github.com/blueprint-learn/week2-techteam-sp26-{github-username}
You will get an email with access to your repo
Clone your repo
git clone https://github.com/blueprint-learn/week1-techteam-sp26-{github-username}.git
Recap last week
We built a running FastAPI server
We created endpoints
We used path parameters
CI tested our API contract
Goal for today
By the end of today, you will understand how APIs receive structured data and how FastAPI validates it automatically.
Big idea
Last week: Client asks for data
This week: Client sends data
1. How Data Enters an API
There are three main ways data reaches an API:
Path parameters
/items/5
Query parameters
/items?limit=10
Request body (JSON)
Type
Where used
Example
Path
Identify resource
/users/3
Query
Filter/search
?limit=10
Body
Send data
POST JSON
2. Query Parameters
@app.get("/items")
def list_items(limit: int = 10):
return {"limit": limit}
Show
/items
/items?limit=5
/items?limit=abc
Explain
Default values
Type conversion
Automatic validation
Key insight
FastAPI parses query strings into typed Python values.
3. Request Bodies & JSON
Motivation
Real APIs receive structured data:
User signup
Orders
Messages
Payments
Example request
{
"name": "Notebook",
"price": 5.99
}
Naive version
@app.post("/items")
def create_item(item: dict):
return item
Problem
No validation
No structure
No guarantees