📖 Scenario: You are building a simple REST API server that returns user profile data. To make the server faster and reduce the work it does, you want to use caching.
🎯 Goal: Build a simple REST API that caches user data to reduce server load by avoiding repeated data fetching.
📋 What You'll Learn
Create a dictionary called user_data with exact user profiles
Create a variable called cache to store cached results
Write a function called get_user_profile that checks cache before fetching from user_data
Print the profile data for user "alice" twice to show caching in action
💡 Why This Matters
🌍 Real World
Caching is used in real web servers to speed up responses and reduce the work the server must do for repeated requests.
💼 Career
Understanding caching helps backend developers optimize APIs and improve user experience by making apps faster and more efficient.
Progress0 / 4 steps
1
DATA SETUP: Create user data dictionary
Create a dictionary called user_data with these exact entries: 'alice': {'age': 30, 'city': 'New York'}, 'bob': {'age': 25, 'city': 'Los Angeles'}, and 'carol': {'age': 27, 'city': 'Chicago'}.
Rest API
Hint
Use curly braces to create a dictionary with keys 'alice', 'bob', and 'carol'. Each key maps to another dictionary with keys 'age' and 'city'.
2
CONFIGURATION: Create cache dictionary
Create an empty dictionary called cache to store cached user profiles.
Rest API
Hint
Use empty curly braces to create an empty dictionary called cache.
3
CORE LOGIC: Write caching function
Write a function called get_user_profile that takes a parameter username. Inside the function, first check if username is in cache. If yes, return the cached data. Otherwise, get the data from user_data, store it in cache, then return it.
Rest API
Hint
Use if username in cache to check cache. Use user_data.get(username) to get data if not cached.
4
OUTPUT: Print cached results
Print the result of calling get_user_profile with 'alice' twice to show caching reduces repeated data fetching.
Rest API
Hint
Use print(get_user_profile('alice')) twice to show the cached data is returned both times.
Practice
(1/5)
1. Why does caching reduce the load on a server when handling REST API requests?
easy
A. Because it forces the server to recalculate data every time
B. Because it increases the number of requests the server must process
C. Because it deletes data from the server to free up space
D. Because it stores copies of responses to serve repeated requests faster
Solution
Step 1: Understand caching purpose
Caching saves copies of data or responses so the server doesn't have to create them again for repeated requests.
Step 2: Effect on server load
By serving stored copies, the server avoids extra processing, reducing its workload.
Final Answer:
Because it stores copies of responses to serve repeated requests faster -> Option D
Quick Check:
Caching reduces server work = D [OK]
Hint: Caching saves repeated work by storing data copies [OK]
Common Mistakes:
Thinking caching increases server calculations
Confusing caching with deleting data
Believing caching forces recalculation every time
2. Which HTTP header is commonly used to control caching behavior in REST APIs?
easy
A. Cache-Control
B. Authorization
C. Content-Type
D. User-Agent
Solution
Step 1: Identify caching headers
The HTTP header that controls caching rules is named Cache-Control.
Step 2: Verify other headers
Authorization is for security, Content-Type defines data format, and User-Agent identifies the client.
3. Consider this REST API server with caching enabled. What will be the output of the following sequence?
1. Client requests resource A (not cached)
2. Server processes and caches response for A
3. Client requests resource A again
4. Server returns cached response
What happens at step 4?
medium
A. Server returns the cached response instantly without processing
B. Server processes resource A again and returns new response
C. Server returns an error because cache is empty
D. Server delays response to check for updates
Solution
Step 1: Understand caching steps
At first request, server processes and caches the response. On the second request, the cached response is available.
Step 2: Behavior at repeated request
Server returns the cached response immediately without reprocessing, speeding up response time.
Final Answer:
Server returns the cached response instantly without processing -> Option A
Quick Check:
Cached response served = A [OK]
Hint: Cached data skips processing on repeat requests [OK]
Common Mistakes:
Thinking server recalculates every time
Assuming cache is empty on second request
Believing server delays to check updates
4. A developer added caching to their REST API but notices stale data is served too long. What is the likely cause?
medium
A. Cache is disabled in the server
B. Server is not processing requests
C. Cache expiration time is set too high
D. Client is not sending requests
Solution
Step 1: Identify stale data cause
If cached data stays too long, it means the cache expiration or max-age is set too high, so data is not refreshed often.
Step 2: Check other options
Cache disabled means no caching, so no stale data. Server not processing or client not sending requests would cause no responses, not stale data.
Final Answer:
Cache expiration time is set too high -> Option C
Quick Check:
Long cache time = stale data = B [OK]
Hint: Long cache expiration causes stale data [OK]
Common Mistakes:
Assuming cache is off when stale data appears
Blaming server or client inactivity
Ignoring cache expiration settings
5. You want to reduce server load by caching REST API responses but also ensure data freshness. Which strategy best balances these needs?
hard
A. Cache responses indefinitely without validation
B. Set a short cache expiration and use conditional requests with ETag headers
C. Disable caching completely to always get fresh data
D. Only cache error responses to reduce load
Solution
Step 1: Understand caching and freshness tradeoff
Short cache expiration limits stale data time. Conditional requests with ETag let server confirm if data changed before sending full response.
Step 2: Evaluate other options
Disabling caching increases load. Indefinite caching causes stale data. Caching only errors doesn't reduce load effectively.
Final Answer:
Set a short cache expiration and use conditional requests with ETag headers -> Option B
Quick Check:
Short cache + ETag = freshness + load reduction = C [OK]
Hint: Use short cache and ETag for freshness and efficiency [OK]
Common Mistakes:
Disabling caching to fix freshness
Caching forever without validation
Caching only error responses
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.