#100DaysOfCode in Python Transcripts
Chapter: Days 97-99: Building JSON APIs
Lecture: What API operations are required?
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Now before we write some code and we're going to do some pretty interesting things, I think, in terms of organization and the way
0:06
we put this all together but let's just think at a really high level, what operations does our website need to support?
0:13
So we'll talk about how to build these. But let's just sit back and think about, if you can remember back to our 15-way persistent
0:21
Rock Paper Scissors, pretty recent, we had a couple of things that were happening in that game. Here's what I think we're going to need to do in order
0:30
to move all the logic and persistence to the server and still let the client communicate with it. So first of all, you're going to need to be able to
0:38
register a user or get an existing user and I broke those apart you know, with a website, it just kind of seemed like you should either
0:45
kind of login or register as two separate things. You can put them separate or if you want to,
0:50
you can combine them back like we had get or create user. We want to start a new game, now this is really important
0:56
because what we're going to do is we're going to create basically an id for the game and all subsequent
1:01
operations will exchange that game id as part of who they are and how they're interacting so if you ask
1:08
for, show me the history, who won, play a round, you're going to pass around this id that we get by starting a new game,
1:14
we will show the rolls and let the user pick the rolls from an existing list. Now we could just hard code the 15 rolls into the client
1:22
but what if we want to someday upgrade it? Maybe around St. Paddy's Day, you could throw a leprechaun and you want to make that a feature of the game,
1:29
you want to add it, it just automatically have everybody pick those up or you want to convert it to 25-way
1:34
Rock Paper Scissors or something along those lines. So we're going to get the rolls from the server so that we're always consistent
1:40
with what the server expects. We can ask, what is the game status? Most importantly, is it over and who won and things
1:47
like that but this will kind of give us the history and the status of whether it's over and so on and finally one of the critical parts
1:55
is actually playing a round. I want to roll the devil and see what happens, right. We'll have a computer player on the other side
2:02
and they'll randomly choose something and you'll see if they win, whether you win and so on. But this is sort of the playing of the game
2:09
and we'll just play the rounds until we find out that the game is over. And finally, one of the fun things we had in the original
2:15
game, the persistent one, was when it started it showed that the players with the top scores. Of course, those were just the players on your machine
2:23
that you happened to have played previously. We're going to add a top scores operation so basically you get the global top scores and you can be ranked
2:32
in the top ten, in the entire world in 15way Rock Paper Scissors demo app, wouldn't that be cool?
2:38
So you'll be able to see that here, as it comes along. So these are the operations we're going to build in Flask.