04. Creating a REST webservice

14 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€66.35
List Price:  €94.79
You save:  €28.44
£55.27
List Price:  £78.97
You save:  £23.69
CA$97.91
List Price:  CA$139.89
You save:  CA$41.97
A$107.61
List Price:  A$153.73
You save:  A$46.12
S$94.02
List Price:  S$134.32
You save:  S$40.30
HK$544.76
List Price:  HK$778.26
You save:  HK$233.50
CHF 61.99
List Price:  CHF 88.57
You save:  CHF 26.57
NOK kr773.52
List Price:  NOK kr1,105.08
You save:  NOK kr331.55
DKK kr494.87
List Price:  DKK kr706.99
You save:  DKK kr212.12
NZ$119.04
List Price:  NZ$170.06
You save:  NZ$51.02
د.إ257.07
List Price:  د.إ367.26
You save:  د.إ110.18
৳8,334.01
List Price:  ৳11,906.24
You save:  ৳3,572.23
₹5,905.12
List Price:  ₹8,436.24
You save:  ₹2,531.12
RM312.96
List Price:  RM447.10
You save:  RM134.14
₦117,219.95
List Price:  ₦167,464.25
You save:  ₦50,244.30
₨19,380.58
List Price:  ₨27,687.73
You save:  ₨8,307.15
฿2,429.14
List Price:  ฿3,470.35
You save:  ฿1,041.21
₺2,412.08
List Price:  ₺3,445.98
You save:  ₺1,033.89
B$405.06
List Price:  B$578.68
You save:  B$173.62
R1,267.31
List Price:  R1,810.53
You save:  R543.21
Лв129.73
List Price:  Лв185.34
You save:  Лв55.60
₩97,779.80
List Price:  ₩139,691.42
You save:  ₩41,911.61
₪261.55
List Price:  ₪373.67
You save:  ₪112.11
₱4,130.77
List Price:  ₱5,901.36
You save:  ₱1,770.58
¥10,901.93
List Price:  ¥15,574.86
You save:  ¥4,672.92
MX$1,414.26
List Price:  MX$2,020.46
You save:  MX$606.19
QR254.33
List Price:  QR363.35
You save:  QR109.01
P948.83
List Price:  P1,355.53
You save:  P406.70
KSh9,063.70
List Price:  KSh12,948.70
You save:  KSh3,885
E£3,478.50
List Price:  E£4,969.50
You save:  E£1,491
ብር8,583.46
List Price:  ብር12,262.61
You save:  ብር3,679.15
Kz63,877.12
List Price:  Kz91,256.94
You save:  Kz27,379.82
CLP$67,980.58
List Price:  CLP$97,119.28
You save:  CLP$29,138.70
CN¥507.18
List Price:  CN¥724.58
You save:  CN¥217.39
RD$4,200.06
List Price:  RD$6,000.34
You save:  RD$1,800.28
DA9,338.81
List Price:  DA13,341.73
You save:  DA4,002.91
FJ$158.92
List Price:  FJ$227.04
You save:  FJ$68.12
Q538.38
List Price:  Q769.16
You save:  Q230.77
GY$14,583.53
List Price:  GY$20,834.51
You save:  GY$6,250.97
ISK kr9,640.42
List Price:  ISK kr13,772.62
You save:  ISK kr4,132.20
DH696.78
List Price:  DH995.44
You save:  DH298.66
L1,273.82
List Price:  L1,819.82
You save:  L546
ден4,077.60
List Price:  ден5,825.40
You save:  ден1,747.79
MOP$559.09
List Price:  MOP$798.74
You save:  MOP$239.64
N$1,260.89
List Price:  N$1,801.35
You save:  N$540.46
C$2,566.52
List Price:  C$3,666.61
You save:  C$1,100.09
रु9,423.16
List Price:  रु13,462.23
You save:  रु4,039.07
S/264.65
List Price:  S/378.10
You save:  S/113.44
K280.62
List Price:  K400.90
You save:  K120.28
SAR262.75
List Price:  SAR375.38
You save:  SAR112.62
ZK1,926.57
List Price:  ZK2,752.36
You save:  ZK825.79
L330.17
List Price:  L471.69
You save:  L141.52
Kč1,676.98
List Price:  Kč2,395.79
You save:  Kč718.80
Ft27,187.34
List Price:  Ft38,840.72
You save:  Ft11,653.38
SEK kr769.78
List Price:  SEK kr1,099.74
You save:  SEK kr329.95
ARS$70,112.88
List Price:  ARS$100,165.56
You save:  ARS$30,052.67
Bs483.65
List Price:  Bs690.96
You save:  Bs207.30
COP$308,470.35
List Price:  COP$440,690.82
You save:  COP$132,220.46
₡35,450.59
List Price:  ₡50,645.88
You save:  ₡15,195.28
L1,762.11
List Price:  L2,517.41
You save:  L755.29
₲543,153.02
List Price:  ₲775,966.15
You save:  ₲232,813.12
$U2,992.07
List Price:  $U4,274.58
You save:  $U1,282.50
zł287.83
List Price:  zł411.21
You save:  zł123.37
Already have an account? Log In

Transcript

In this session, let us learn how to create a micro service as registered in the Eureka service registry. The application that we are going to see is based on hotel. So it is a hotel service application. I want to express four methods of this application, get our hotels, get hotels by city, get one hotel and a welcome message. We don't we are not going to have any database but I'm going to have the values for the hotels and give it directly. Let us start now.

A new spring starter project. project name is hotel hyphen service pages combat hotel app. And here also let me just change it in the description. You can just specify what a micro service is this. This is actually a hotel micro service, you can just change The description from here are from Palm dot XML. Let me change it from your hotel microservice.

Let me click Next. Now I need to add the dependencies. The dependency is going to be Eureka server and Eureka Discovery Search for Eureka. Everybody this Korean server, let me select both. Once they are selected, automatically it will appear on the top so you can select from there also. Click Next, click Finish.

So, we are creating a spring micro service which is nothing but a discovery client. The main class should be annotated with at the rate enable discovery client. Now the application is ready. Let me open it. First I will open palm dot XML. In palm dot XML, you can see the name of photo service.

The description is also given. Let me scroll down to the bottom for the dependencies. In the previous application, we had only You record server as a dependency because it was a registry in this case it is a Eureka client. This is basically a micro service which is getting itself registered to the Eureka service Eureka service registry. So here are our two dependencies. Okay, this is that next Let me open SRC main Java Java token service application dot java.

This class should be annotated with a direct enable discovery client. Let me add annotation paint classes ready. This is our application. So we need a model, which is nothing but hotel. This hotel is going to have for instance variable name, city, Wi Fi and hotel ID. I need to create a class hotel with these instance variables.

Let me do that. Remember to change the package name comm dot hotels dot model. The class name is hotel Add the instance variables, getter and setter methods and to string. Now my hotel classes ready together with a getter and setter method. I have also added a parameterised constructor and the default constructor. the right approach is always to our default constructor and call the getter and setter methods.

In this application we are going to hard code the values for hotel. So I have created a parameterised constructor. In a real time scenario you will be trying to retrieve a list of hotels from the database, we are not going to work with a database we are going to hard code the values and give it Next let me go and create the controller. The controller should be created in a separate package comm dot hotel app dot controller. So select the package the class famous hotel controller. Okay, now let me come to the left hand side here you can see comm dot hotel not within the same area, hotel a controller and dot model.

The hierarchy is correct It is not aligned properly. So what you can do is select the application, right click refresh, ah directly select application and press f5 now, you can see the hierarchy is proper in combat broken up by having the application class in combat confirming I have got the controller and in the model I have bought the hotel class, let me go into the hotel controller, this class should be annotated with a direct rest controller, because we are creating a restful service which is nothing but a micro service. Now, in this controller, let me add four methods. One method is to give a welcome method. One method is to get all the hotels, one method, get hotel spaces and one method to get one hotel. And also I'm going to have a method which will be having a list of hotels.

We don't have a database. We don't have a service layer file the hard coding the values here only let me add the methods Then I will explain how the method Let me explain now, the first method is very come and say it is taking the path of grid together with a PATH variable name and taking the variable name from the path and assigning it to the parameter name. This is just to give a welcome message welcome cluster username. Next, I want to get all the hotels for Methodist View Hotel. I want to I don't have a database so I have hard coded values. I have created a private method which is returning in the star hotel.

Either you can do just like what I have given our we can use RF dot Atlas method with a niche you can pass a list of hotels Okay, I mean we've been to Michigan Park an array array that Atlas helps to convert an array into a list here a given a hard coded values. Now let me come to this view or this method. What does it say? Cost mapping values are hyphen hotel. What is this? This is the path name, I have given it as all hyphen hotels.

In the spring application, whenever you have given the path you are giving it in camel case are in lower case you put a single word in case of lip service or RESTful web service you gave it FM now, employees or employees slash ID This is how you gave in case of micro service. If your first name your last two words it has to be separated by a hyphen. That's what I have given all hyphen hotel and what actually is going to produce it is going to produce a list given the star hotel. It will be in XML format I want in JSON format. So I have given producer a list get hotels by city for that I have given the purpose hotels hyphen by hyphen city here are using the PATH variable and then I'm trying to append it to a local parameter. Okay.

Yes. Now on I'm trying to iterate the list of hotels using for each already you have learned how to use for each year I'm using that lambda part also hyphen angle bracket, I am checking every individual hotel for the city you put this available I'm adding it to a new hotel list now it is available here. Next let me come to this get one method in get one method what it has to return it has to return a one single hotel object. So either you can use lambda or you can go in for for loop a normal for loop. So for this case, I'm going to add a normal for loop to iterate through the array is to check whether that particular ID is available. Here also I have use only PATH variable, see the name, the path name, one hyphen hotel, okay, let me add the code.

So in this course, in the first case, we have used for each from St. Annie and we have use lambda in this case we have gone for a normal for loop right? Through the ArrayList. So this is completed. Next, what what has to be done we need to go in for application dot YAML. So let me open SRC main the sources, and I need to create application dot YAML file. Either you can create it or you can copy it from the previous application.

Now, what are things that are to be added in this particular configuration file, you need to do the port number in which this application will be running. And also you can give your application name specify the URL of the Eureka server. Let me add that so far to the server. Let me do the port number of 8081. Then we need to give the application name spring dot application dot name. This is going to be hotel service.

We are going in for the Eureka Eureka dot client dot service you are the fault zone. Now I have to do http colon slash slash localhost colon 8761, slash Eureka and also a slash in the end. And I have not given any space, so it's giving me an error space controllers. So these are the things needed for this particular configuration file. If you don't want to see the white label error page, you can also add that in this particular configuration file. First, let us try running this before running this application.

Always ensure that whether your registry is up and running, let me open the console here window Show View consoles. Yeah, here is my console. In the console, the Eureka server is not running it is terminated. So first, let me launch the Eureka server. Now the server has started. Now let me select quarter service right click random Spring Boot app.

The application has started successfully. Let me Just scroll to the other side you can see the details discovery client hotel service slash, this is my IP config colon the application name colon 8081. Can you see this okay and there are a few mappings that also will be shown on the topic and just have a look to check whether the application that you have created a standing for perfectly fine even before going into the browser. We have added all hotels hotels by city one hotel great see everything is available over here. Now next thing we are running the server but here we are only seeing this hotel service, how to see the server, go to the monitor symbol over that click triangle downward triangle. You will be seeing the other console also Eureka server select that.

Now I have got the Eureka server. Let me just show you here. It will show the service status registered. Can you see registered instance hotel service I already can understand the spot. Now, what we will do is we will go back to the browser and first open the service registry. If already the said you just go and refresh you will be seeing the instance.

Now, let me go to the browser. Now I am running the Eureka server, localhost colon 8761 if your server service registry is open already go and refresh it automatically you will get this hotel service. Now you are having a link click this link. Now, I will check all the details. So it is at 83281 slash all hyphen hotels I must get them to stop hotels in JSON format. Now I am getting it and also we are hotels by city let us try that out also hotels hyphen by hyphen city slash Delhi.

Let me press enter it there is no hotel with the name Delhi I mean four city Delhi I think so. Let me just check it out. Yeah the hotel with delays there. Let me check the logic or see the error that I have made the I have given it in double quotes that is why I was not getting the proper output. Now the application has relapsed, I think so RS what it can do go here and relax the photo service now is getting relaxed. We'll go to the browser.

Let me refresh. I'm getting the list of hotels by Delhi that we also checked with Bangalore. Now see it is an XML format, because we have not asked for the JSON format. And also we will check with a great message grid slash Priya. Welcome Priya. I got that message.

And one more thing I have one hotel, one space hyphen hotel. slash 124. Sangeeta Bangalore Indian 124. I think it is the same one. Let me check it out. Here.

Yeah. 124 Ok, so, what actually we have done this, we have created a micro service with the name hotel service and registered it with the Eureka service registry. Okay, so when a micro service is getting registered to the service registry automatically it will be visible over here. That's what I have got. Now, if a wants to check the micro service what I have done, I have clicked this link and now I'm trying to do the path if the path is not available, in that case, what it will do is it will give me a white label error. If you don't want to see the white label error you can also configure that in application dot YAML.

So here let me just give a value which is not available. In that case I will get like 129 is not there. Now, I will give a different path which is not there at all and getting white label error. I if you don't want to see this white label error page means you can configure it in Application dot html. I think the next concept I will show you how to configure this white label error page in application dot XML file. It is a simple property which has to be added.

So this is how you create a micro service and register it with your a car service registry. Thank you

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.