Learn how the web works and use Postman to explore APIs before building your own! (Ages 8-18)
Session Date: Saturday, December 13, 2025 at 11:00 AM EST
| ๐ฑ Elementary (8-11) | ๐ฟ Middle School (12-14) | ๐ณ High School (15-18) | |
|---|---|---|---|
| ๐ก HTTP | Understand that computers talk to each other | Know the 4 main HTTP methods | Understand request/response headers |
| ๐ APIs | Use Postman to see data from the internet | Call multiple APIs and understand JSON | Analyze API design patterns |
| ๐ By End | Get data from a fun API | Test several APIs with different methods | Design API requests independently |
Setup: One student is the "Customer" (Client), one is the "Waiter" (HTTP), one is the "Kitchen" (Server)
Round 1: How a restaurant works โ
CUSTOMER WAITER KITCHEN
(Client) (HTTP) (Server)
"I'd like a โ Carries order โ Receives order
pizza please" to kitchen Makes pizza
Receives pizza โ Brings food โ Pizza ready!
and eats it to table Sends it out
Round 2: What if something goes wrong? ๐ค
Customer: "I'd like a dragon burger"
Kitchen: "Sorry, we don't have that!" (404 - Not Found) โ
Customer: "I'd like 1000 pizzas RIGHT NOW"
Kitchen: "Whoa, slow down!" (429 - Too Many Requests) ๐
Customer: "What's on the menu?"
Kitchen: "Here's everything we have!" (200 - OK) โ
๐ฌ Discussion:
"The internet works like a restaurant! Your browser (customer) sends requests, and servers (kitchen) send back responses. HTTP is the waiter that carries messages back and forth!"
Stand up and learn the four main HTTP methods with actions:
GET ๐ "Give me data!"
[Pretend to READ a book]
POST โ๏ธ "Here's new data!"
[Pretend to WRITE in a notebook]
PUT ๐ "Update this data!"
[Pretend to ERASE and REWRITE]
DELETE ๐๏ธ "Remove this data!"
[Pretend to throw paper away]
๐ฎ Play "HTTP Says":
- ๐จโ๐ซ Teacher calls: "HTTP says... GET a book!"
- ๐จโ๐ Students: Do the reading motion
- ๐จโ๐ซ Teacher calls: "POST a new message!" (no "HTTP says")
- ๐ซ Students who move are out!
๐ Key Insight:
"These four actions - Read, Create, Update, Delete - are called CRUD. Almost every app in the world uses them!"
Each group gets status codes to act out:
200 OK ๐ Give thumbs up, big smile
201 Created ๐ Celebrate like you made something new
400 Bad Request ๐คท Look confused, shake head
404 Not Found ๐ Search around, look puzzled
500 Server Error ๐ฅ Fall down dramatically
Other groups guess the status code!
๐ฌ Discussion:
"Status codes are like quick messages. Just like texting '๐' means OK, '200' means the request worked!"
HOW THE WEB WORKS
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ CLIENT โ โ SERVER โ
โ (Your Phone โ โ (Computer โ
โ or Browser) โ โ far away) โ
โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ THE INTERNET โ โ
โ โ โ โ
โโโโโโถ REQUEST โโโโโโโโโโโโโโถโโโ
โ "GET /api/books" โ
โ โ
โโโโโโ RESPONSE โโโโโโโโโโโโโโโโ
โ โ Here's your data! โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโ โ
โผ โผ
๐ฑ Examples of Clients: ๐ฅ๏ธ Examples of Servers:
โข Web browser โข YouTube
โข Phone apps โข Instagram
โข Postman โข Your Library API!
โข Video games
THE FOUR MAIN HTTP METHODS (CRUD)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ GET POST PUT DELETE โ
โ ๐ โ๏ธ ๐ ๐๏ธ โ
โ โ
โ READ CREATE UPDATE DELETE โ
โ โ
โ "Give me "Here's "Change "Remove โ
โ the data" new data" this" this" โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Library Examples:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
GET /books โ ๐ Show me all books
GET /books/1 โ ๐ Show me book #1
POST /books โ โ Add a new book
PUT /books/1 โ โ๏ธ Update book #1
DELETE /books/1 โ ๐๏ธ Remove book #1
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ STATUS CODE FAMILIES โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2๏ธโฃXX - SUCCESS! ๐
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 200 OK โ
"Here's your data!" โ
โ 201 Created ๐ "I made a new thing!"โ
โ 204 No Content โ๏ธ "Done, nothing to show"โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
4๏ธโฃXX - YOUR MISTAKE ๐คฆ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 400 Bad Request โ "I don't understand" โ
โ 401 Unauthorized ๐ "Who are you?" โ
โ 404 Not Found ๐ "That doesn't exist" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
5๏ธโฃXX - SERVER'S MISTAKE ๐ฅ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 500 Server Error ๐ฅ "Something broke!" โ
โ 503 Unavailable โณ "Try again later" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Session11-WebBasics/
โโโ ๐ README.md (this file)
โโโ ๐ HTTP_CHEATSHEET.md
โโโ ๐ exercises/
โโโ ๐ api_explorer.md
- โ Completed Session 10 (OOP Checkpoint)
- โ Postman installed (we'll do this together)
๐ค Think about apps you use every day:
YOUR PHONE APP THE SERVER
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ YouTube โ โ YouTube's โ
โ App โ โโโโ HTTP โโโโโถ โ Computers โ
โ โ โโโ Videos โโโ โ โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
The app doesn't store all videos -
it ASKS the server for them!
๐ฌ Discussion:
"Your phone app is like a window. The actual data lives on servers - powerful computers that store everything and send it to you when you ask!"
๐ Let's spy on web traffic!
1๏ธโฃ Open Chrome 2๏ธโฃ Press F12 (or right-click โ Inspect) 3๏ธโฃ Click the "Network" tab 4๏ธโฃ Go to any website 5๏ธโฃ Watch all the requests appear!
WHAT YOU'LL SEE:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Name Method Status Size โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ example.com GET 200 โ
15 KB โ
โ logo.png GET 200 โ
5 KB โ
โ styles.css GET 200 โ
3 KB โ
โ api/data GET 200 โ
1 KB โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Each row = one HTTP request!
๐ฅ Group Activity:
Count how many requests your favorite website makes. Who found the site with the most requests?
๐ฎ Postman is like a web browser for APIs!
1๏ธโฃ Go to: https://www.postman.com/downloads/ 2๏ธโฃ Download for your operating system 3๏ธโฃ Install with default settings 4๏ธโฃ Create a free account (or skip for now)
WHY POSTMAN?
๐ Browser: ๐ฎ Postman:
Shows HTML pages Shows raw data
For humans to read For programmers to test
Limited to GET All methods (GET, POST, etc.)
๐ฏ Let's talk to GitHub's servers!
1๏ธโฃ Open Postman
2๏ธโฃ Click "+" to create a new request
3๏ธโฃ Enter URL: https://api.github.com
4๏ธโฃ Make sure "GET" is selected
5๏ธโฃ Click "Send"
WHAT YOU'RE DOING:
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
โ Postman โ โโโโโโโถ โ GitHub's โ
โ (You) โ "Hello โ Servers โ
โ โ there!"โ โ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ { โ
โ "current_user_url": "https://...", โ
โ "emojis_url": "https://...", โ
โ ... โ
โ } โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
GitHub responded with JSON data! ๐
๐ Look at what GitHub sent back:
{
"current_user_url": "https://api.github.com/user",
"emojis_url": "https://api.github.com/emojis",
"events_url": "https://api.github.com/events"
}๐ This is JSON! Notice:
- ๐ฆ Curly braces
{ }contain the data - ๐ Key-value pairs like
"name": "value" - ๐พ Just like your Library Manager save files!
๐ฅ Pair Discussion:
"Where have we seen JSON before?" (Answer: Session 8 - File Operations!)
๐ค Get information about a GitHub user:
- Method: GET
- URL:
https://api.github.com/users/octocat
{
"login": "octocat",
"id": 583231,
"avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4",
"name": "The Octocat",
"company": "@github",
"followers": 9847
}๐ฏ Try your own username!
- URL:
https://api.github.com/users/YOUR-USERNAME
๐ฎ Try these APIs in Postman:
๐ DOG FACTS API
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
GET https://dog-api.kinduff.com/api/facts
Response:
{
"facts": ["Dogs have three eyelids."],
"success": true โ
}
๐ค RANDOM USER API
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
GET https://randomuser.me/api/
Response:
{
"results": [{
"name": { "first": "John", "last": "Doe" },
"email": "john.doe@example.com"
}]
}
๐ค๏ธ WEATHER API (Philadelphia)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
GET https://api.open-meteo.com/v1/forecast?latitude=39.95&longitude=-75.16¤t_weather=true
Response:
{
"current_weather": {
"temperature": 72.5,
"windspeed": 5.2
}
}
๐ Group Challenge:
Each group picks a different API. Who can find the most interesting data?
โ๏ธ POST is how you CREATE new things!
- Method: POST
- URL:
https://jsonplaceholder.typicode.com/posts - Body (select "raw" and "JSON"):
{
"title": "My First Post",
"body": "Hello from Postman!",
"userId": 1
}Click Send and see the response:
{
"title": "My First Post",
"body": "Hello from Postman!",
"userId": 1,
"id": 101
}๐ The server added an ID! This is like when your Library adds a new book.
๐ป YOUR CONSOLE APP: ๐ AS AN API:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
myLibrary.AddBook(new Book POST /api/books
{ {
Title = "Harry Potter", "title": "Harry Potter",
Author = "J.K. Rowling", "author": "J.K. Rowling",
PageCount = 309 "pageCount": 309
}); }
myLibrary.GetAllBooks(); GET /api/books
myLibrary.FindBook("Harry"); GET /api/books?search=Harry
myLibrary.DeleteBook(1); DELETE /api/books/1
๐ Key Insight:
"In Sessions 12-15, we'll turn YOUR Library Manager into an API that works just like these!"
๐พ Save your requests for later:
1๏ธโฃ Click "Save" on any request 2๏ธโฃ Create a collection called "CoderDojo Learning" 3๏ธโฃ Save all your practice requests there
YOUR COLLECTION:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ CoderDojo Learning โ
โ โ
โ ๐ GitHub API โ
โ ๐ GitHub Users โ
โ ๐ Dog Facts โ
โ ๐ Weather โ
โ ๐ Create Post (POST) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
REST is a way of designing APIs that uses standard HTTP:
| ๐ฌ Action | ๐ก HTTP Method | ๐ URL Example | ๐ Library Equivalent |
|---|---|---|---|
| ๐ List all books | GET | /api/books | GetAllBooks() |
| ๐ Get one book | GET | /api/books/1 | FindBook(1) |
| โ Add a book | POST | /api/books | AddBook(...) |
| โ๏ธ Update a book | PUT | /api/books/1 | UpdateBook(...) |
| ๐๏ธ Delete a book | DELETE | /api/books/1 | DeleteBook(1) |
๐ Circle Share - Answer one: 1๏ธโฃ "HTTP is like... because..." 2๏ธโฃ "The difference between GET and POST is..." 3๏ธโฃ "Status code 404 means..." 4๏ธโฃ "An API is like..."
- ๐ Opened Chrome DevTools and saw network requests
- ๐ฎ Installed Postman
- ๐ Successfully called the GitHub API
- ๐งช Tried at least 3 different public APIs
- โ๏ธ Sent a POST request with JSON data
- ๐พ Saved requests to a collection
Find and test 3 APIs from https://github.com/public-apis/public-apis
Use the GitHub API to find repositories: https://api.github.com/search/repositories?q=pokemon
Sign up for a free API key at openweathermap.org and make authenticated requests.
| ๐ท๏ธ Term | ๐ Kid-Friendly Definition | ๐ก Example |
|---|---|---|
| ๐ก HTTP | The language browsers and servers speak | "Hey server, GET me that page!" |
| ๐ API | A way for programs to talk to each other | GitHub's API lets you get user data |
| ๐ค Request | Asking for something | GET /books |
| ๐ฅ Response | The answer you get back | { "books": [...] } |
| ๐ฆ JSON | A format for data that looks like JavaScript | {"name": "Harry Potter"} |
| ๐ข Status Code | A number that says if it worked | 200 = OK โ , 404 = Not Found โ |
| ๐ฎ Postman | A tool for testing APIs | Like a browser for programmers |
๐จโ๐ฉโ๐งโ๐ฆ Talk to a family member:
"Today I learned how the internet works! When you use an app, it sends requests to servers that send back data. I used a tool called Postman to talk directly to servers and get data!"
๐ฎ Activity: Open the Developer Tools (F12) on a website you visit often. Count how many HTTP requests it makes!
๐ค Questions to explore:
- ๐ Which website makes the most requests?
- ๐ด Can you find any requests that failed (red color)?
- ๐ฆ What kind of data is being sent back?
In Session 12, we'll create our first ASP.NET Core Web API and make YOUR Library Manager accessible over HTTP! ๐