Finished Lab N-1 Riddles Checkpoints 1-3

One internet-enabled service I use regularly is Google Classroom.
I often will post an assignment, students can view the assignement, then
submit their work online. I hypothesize that when I post an assignment,
my computer sends an HTTP POST request to the Google Classroom server.
When students view the assignment, their computers send an HTTP GET
request to the server to retrieve the assignment details, which are then
displayed on their screens. When students submit their work, another
HTTP POST request is sent to the server with their submission data,
which is then stored and associated with their account.

This lab's exploration of requests and responses has helped me
understand what happens behind the scenes when I use
technology or any platform.I now understand that every time I interact
with an app or website, there are multiple HTTP requests and responses
happening.
This commit is contained in:
jkissane2
2026-02-14 09:18:35 -05:00
parent 8f767009ed
commit ab75cc8b19
3 changed files with 49 additions and 3 deletions

18
api.py
View File

@@ -36,16 +36,28 @@ class RiddleAPI:
def get_riddle(self, riddle_id):
"Fetches a single riddle from the server"
route = "/show"
raise NotImplementedError("The API doesn't support `get_riddle` yet. Can you add it?")
params = {'id': riddle_id}
response= requests.get(self.server_url + route, params=params)
if response.ok:
return response.json()
else:
raise APIError(response.json()['errors'])
def get_random_riddle(self):
"Fetches all riddles from the server and then randomly returns one"
raise NotImplementedError("The API doesn't support `get_random_riddle` yet. Can you add it?")
riddles = self.get_all_riddles()
return choice(riddles)
# raise NotImplementedError("The API doesn't support `get_random_riddle` yet. Can you add it?")
def add_riddle(self, question, answer):
"Adds a new riddle to the server"
route = "/new"
raise NotImplementedError("The API doesn't support `add_riddle` yet. Can you add it?")
params = {'question': question, 'answer': answer}
response = requests.post(self.server_url + route, json=params)
if response.ok:
return response.json()
else:
raise APIError(response.json()['errors'])