Modern APIs with FastAPI and Python Transcripts
Chapter: Accepting inbound data
Lecture: Building a report client app
0:00 While it's fun to play with the API over here, let's go ahead and take it one step further and actually create a little application,
0:07 a little client app, that will do this. Now, a lot of Web apps don't have stand alone clients,
0:13 but imagine you're creating an iPhone app or something along those lines. We're gonna create a BIN folder and over in the BIN I'll create a report app.
0:21 Something like that. I'll just set that, let's first run. Looks like the main is running. That's good. And let's run our little report app,
0:28 okay. So when I just hit the button, it's gonna run this. So what's this going to do? Well, we've already seen how to consume these API's here,
0:35 right? This. This is what we did. We wanted to consume it. We wrote that little bit of code to asynchronously do this. Actually,
0:42 maybe we'll use requests just because it's simpler, we don't have to do the async event loop. Here we go. So what we want to do is let's just write a
0:49 little bit of code, have a main method here, and it's going to say "while", let's say "choice" or, choice is fine.
0:58 "Choice equals input". Do We want to report something new? Or do you wanna see them? And we'll say "while choice", we're just gonna do something,
1:15 okay? We'll say "if choice dot lower, dot strip is r" we're gonna do one thing. Do another. Don't know what to do
1:38 with choice. And then we're just gonna ask this question again. Great. So now what are we going to do with this?
1:45 Well, we're gonna define a report event method here, and we're going to do a see events method. The see event one is probably gonna be easiest.
1:58 All we got to do is go to our URL over here and do a get, right? We'll say the URL is this. Obviously you don't want local host in general,
2:07 but for this example, that'll be fine. We'll say response equals requests. Get URL. Don't let it carry on
2:16 if something is wrong. And then we need the data back, it comes back as JSON. So we'll just say response dot JSON. And then if you look over here,
2:25 what we're getting back is a list of these things. Let me copy it over just so we can have it to work with. We'll say
2:31 for, this should be a list here of reports, so r in data. Alright, I'm just gonna do something super simple. Like go to the location. Say
2:46 this city has something going on right now, and we could do a lot more, but let's just go with that. And, you know, this might actually work.
2:54 Let's go ahead and run it. It would work if we call it. There we go. Let's run it. Let's say I'm willing to see the reports.
3:01 There are no reports. Is that right? No. There are reports right now. So what are we doing? Let's print out the data we got back.
3:09 Print data. Oh, it would help if we call these, wouldn't it? Okay, so this will be report event. That will be see events. Perfect. Let's see them. Oh,
3:21 yeah. Portland saw a little flooding. Let's go back over here and add something else. This will be our body that we're submitting.
3:29 Here it is. Frost on the roads. Look out. If we just say I want to see reports
3:37 now, look, Portland has frost on the roads and they saw a little flooding. How cool is that? The last thing to do is just do a simple little
3:44 version where we submit this back. So this gets a little tiny, bit more complicated. But you just copy it from over here like this.
3:52 We're gonna have the description. We'll say what's happening now and what city and
4:11 here We'll just put the description, put the city, and I'm not gonna pass the state. Alright, so we've got our data, and instead of doing a get, well,
4:21 we're gonna need to do a post. The URL is the same and what do we want? We want the JSON to be data.
4:42 We can just say something has been happening here. Actually, we can just say, gotta grab that back, and then we come down and say,
4:51 result here, dot get. Let's just say we've got a new event with this ID or something along those lines. Okay, let's make this really big,
5:01 actually, let's run it outside like this. First, let's see the report. Awesome. Portland has frost and some flooding. Let's
5:09 report the weather. What's happening? Sunny. Yes, it's sunny. Where is that? That is in Vancouver. Okay, that we reported some new event.
5:18 We got it back from the server. How cool. Let's see that. Yeah, Vancouver is sunny. Portland has frost on the roads, and they saw a little flooding.
5:25 Let's report one more thing. It's misty in Seattle. And we can see the reports, boom. Nailed it. So Seattle is misty.
5:37 Let's get out of here. Hit enter, we're done. Okay, so that's a bit of a diversion. But hopefully you saw some value in creating this.
5:43 Like look, it's all of 47 lines of code and it's pretty spaced out to actually write an app that interacts with this cool FastAPI that we created.