Now let's add a more useful rest controller here. Instead of doing everything in this application itself, let's create a new class that acts as a customer rest controller. And this controller should have mappings for get post put delete requests. So first of all, let's create a new class here called as customer rest controller. We can also add a sub package over here saying that this is something to do with controllers, say finish. And notice that every time I add or modify some files, Spring Boot project is going to restart so that can be sometimes annoying.
I'm going to stop that. And here I'm going to say that this is a rest controller As well as this is going to handle all the requests for a prefix called API customers. So you can do that by typing at the read request mapping slash API slash customers. Which means that I can come over here localhost double seven double seven slash API slash customers. And then when I send the request, this request will now be handled by one of the function within this particular class. And let's say we want to have a function here, which gives me some response.
So I'm going to write a function here called public. I can say a string. Let's call it as get all customers return. All customers data will come from here. The only thing that I have to do here is to say at the rate, get mapping now Right get mapping is equal into a request mapping with a method of get. So I can as well say here, request mapping method equals to request method dot get.
So this was the only way you could have done in the past. But now we have a simpler way of doing by saying, Get mapping. So let's save this, run the program and see if we can get this going. So I'm going to go here, right click, run as Java application. And then I can come down here and then say API slash customers. I press Enter.
And it says all customers data will come here. But what we want is not a string, but a JSON representation of customer data. And we don't have any clause representing So let's begin by creating a class called customer representing customer data. For this, I'm going to go and create a new class called customer. I right click on this quarter, you know controllers, new class, but this class being an entity class, I can name the package as code or you know dot entity or model or domain and then give the name as customer. Let's assume that we do have a integer ID for a customer.
A couple of other details such as customer name, an email, probably phone number, let's say city, state and probably country. We also want to know whether the customer is male or female. I can say private string gender. And I think this should be good enough for our customer class. Since all these are private variables, you can only make use of them by exposing via getters and setters. Now, traditionally, we would have done that by going to source generate getters and setters.
And then you can add a two string constructor using fields constructor, raising superclass, etc, etc. But we do have a better mechanism called Lombok. Now to work with Lombok, let's go to our spring initializer add Lombok as a dependency, get the newer version of palm, copy that and go back to our project. Replace the current palm dot XML with that one, and in a minute, that project is ready. Now in my case, Lombok has been already setup. So if I go to customer dot java, and add here at the rate, no arcs constructor, you will see that there is a constructor in the outline, as well as I can say at the rate getter at the rate setter.
And you can see that getters and setters are added automatically. Now, in your case, if you're using Lombok for the first time, this may not happen. So first thing you do is to go to Maven dependencies, expand this find out where is the Lombok jar. In my case right here, right click and say copy qualified name. And this will give me the name and location of the chart. You can also see in the status bar here, it's under my users we know Kumar, dot empty repository or project Lombok, Lombok, etc.
So you can find it right here. Now on Windows You have to go to the location and double click the Lombok jar on Mac or Linux, open a terminal. And then just type Java minus jar, followed by the jar file name, which I just copied from Eclipse. And then when I press enter, it is going to come up with a user interface. And this user interface will search for all the IDs that are there. Like this, in my case, it is under slash applications Eclipse dot app.
If you don't see your Eclipse location over here, you can click on the specify location, find out the eclipse dot INF file, and then you should be able to install or update in my case, it's already updated. You can see that the symbol here but if you want you can always say install, update and then quit the installer. Once you have installed you have to close Eclipse and open. Now do not do file restart. That doesn't help you physically eclipsed, and then open again. And then you should be able to see your respective getters, setters, or any other additional annotations that you have used.
Now that I have here, a customer class, let's go to our customer rest controller, and say that we would like to return a list of customers over here. And to do so I can say, list of customer import list from Java dot util, by pressing Ctrl Shift or on Windows or Command Shift o on Mac. And make sure that you select from Java dot util dot list. And now we need to return a list of customers for here. Let's say I want to create two customers and then return them as a list. So let's say customer c one equals to new customer.
C one dot set ID of one that says that name of let's say I give my name See one dot set email c one dot set phone and then C one dot set city, Bangalore c one dot set gender I can also create a second customer let's call it as C two equals to new customer and then I'd say C two dot set ID of two c two dot set name of Natasha said email and I think c two dot set city should do the job. Now in order to return these two customers as a list, I'm going to simply say return arrays.as List of C one Kumasi now that this function is ready. Let's go and rerun the application dot java, which starts our Tomcat server. And then I can go back to the browser and access the same thing. And you'll see now I got a JSON version of the object