generated from mwc/lab_riddles
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:
22
api.py
22
api.py
@@ -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'])
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user