[MUSIC] It's helpful for the rest of the course to understand what people mean by REST, typically, when they say you have a REST interface. And the piece of, of REST, what they're probably describing, is the idea that you're interacting with resources, rather than specific objects or services. Instead, you're, you're acting, you're interacting with resources and your interactions are specified through URLs that address those resources. And there is a common way that people tend to build URLs to address resources, that is what, when you use that common format, that's what they mean by, do you have a REST API. Is they're not meaning the true definition, the full definition of REST, what they're meaning is, you build up your resource URLs in the particular format that I think of as REST. So let's talk about what that format is, since it's helpful to understand what a lot of people expect. So let's say that we're accessing the videos in our video service. A way to represent a particular video would be /video, and then slash an identifier for that video. So let's say, video1. So this is a very specific format, saying this is a video. Now let's say we wanted to go and find out the url of that video, or let's say we wanted to find out the duration of that video. We might go and say video/1/duration. And this could be a addressing scheme that said, go and access videos, the first video and get its duration, and return it to me. So, this is going and accessing, resources sort of in finer and finer granularity of which, you know, resource we're accessing, and which part of that resource. Similarly, we might go and say /video, and expect to get a list of all videos back. Versus here we're getting specific, and we're getting one video. And then here, we're getting a part of a video. And when you hear people say a REST based interface, or a REST based API, typically, this is what they're referring to, is that you have some URL addressing scheme that looks something like this. That you define resources in this sort of generic format that then gets more and more specific as you go down the line. And if you say /video it will give you all of them. If you say /video/ some identifier it will give you a specific one. Or you can ask a specific one and for a specific part of that resource. And this format, is what people think of as REST, and are commonly referring to when they say REST. The other component that they typically are referring to, is how you interact with these resources through HTTP methods. So, if you want to access a resource and get its value, you send a GET request. So GET, to video would give you the list of all the videos. However, if you went and sent a PUT request to this. It's going to create that collection of resources, or if you send a PUT request to down here its going to create or replace, this resource. similarly, if you went and sent a POSt to this resource, what you're actually going to be doing is creating a new one and adding it to the video. So you would create a new video, it would be added to the list, and then a new resource address for that resources that you added would be returned to you. And it's these types of interactions that get labeled REST. This sort of url addressing scheme and the fact that we're using POST to go and add, we're using PUT to replace, we're using GET to access. And also, we can go and potentially delete, using the HTTP verb, some specific resource. And, that's really what's getting referred to as REST, is this loose definition that's much looser than what's actually described in the true definition of REST, but it's important to understand. What the basic idea is behind what people think of as REST. It's accessing resources in a format that looks similar to this, and you can sort of still choose how you describe, you know, finer and finer granularity in your resource. And then using these HTTP verbs to describe the deletion of a resource, or a replacement of a resource, or addition of a new resource, or access to a new resource. And so when we see most of the applications that we're going to be building in this course, we're going to be using URL schemes that look something like this, and we're going to be using verbs in HTTP in a similar manner to this.