I submitted the changes I previously made during

Office Hours last week.

1. I use Steam regularly when I play games. I
would think that there are many webs of
POST and GET requests within that enable online
connections, downloading and saving game data etc.
I think the Steam client probably communicates
with the game servers with the POST and GET
requests to accompolish this.

2. Yeah I would say so! I didn't know about either
type of the requests before so I think I learned
about how things work. Very vaguely I knew that
anything we do on the Internetis basically an
endless transmission of data but I never
considered the technicality of transmissions
that take place.
This commit is contained in:
caglazir2
2026-03-14 15:16:02 -04:00
parent 99732feaa1
commit 2e80d30157
4 changed files with 50 additions and 5 deletions

22
api.py
View File

@@ -4,7 +4,7 @@
# The Riddle API takes care of connecting to the server.
import requests
from random import choice
import random
class APIError(Exception):
"A custom error we'll use when something goes wrong with the API"
@@ -36,16 +36,30 @@ 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?")
route = "/random"
riddle_list = self.get_all_riddles()
return random.choice(riddle_list)
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'])