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
No Comments