Hey there welcome back friends in this video we will try to understand how we can add a post into our list. Now definitely we have this list let me show you the post services dot java file. So, now, moving forward we will try to add a yet another element in this list. Now whenever we are performing an add operation, definitely the first choice is posting some information right. So in here let us try to understand how we can use the POST method and how the post request would be handled by our micro service. So let's get started.
First of all, we would again create a public method and this will return void the name would be add post and in here, definitely in the body of this particular method, we will add the post Now, in order to add this post again we will make use of our service. So it would be like new posts service dot add post. Now this method is not available as of now, we will implement the business logic later down the line. But the most important thing is in order to add a post we need to also pass a post to this method and what is a post post is nothing but an element element in this list, right. So, in order to add an object, first of all we will receive an object inside this add POST method. Now, post and the name of the method post are same as a result in order to reduce confusion, we will give the name of the object a little bit different.
So, it would be like list element. All right. So, this is good and we will pass on this particular object to this method and we simply hover upon this particular method and we will create this method inside our service. Now, we will implement the business logic inside this method in a minute, but as of now, let us try to understand how we will receive the information inside this particular object. Now to be is very simple, we will receive the information via a POST request. So, let us add in the mapping First of all, so, it would be like request mapping and we will give the URL as slash posts.
Now, here is the catch. We already have a mapping for slash post, here is the mapping and by default if we directly make use of double quotes, and we give the value this is nothing but a value of an attribute by the name of value. And in here, the default method which has Used as cat. So, as a result, this particular method is doing the same thing what this particular method is doing right, this is receiving the same request. Now, there should be a way using which we should specify which type of the requested this method should handle and indeed there is a way. So, if I show you the attributes one of the attributes in here as a method so, in here let me make use of this method.
And in here we have something known as a request method which is nothing but a enum enumerated list and using this list, we can check out the values one of the value is post. So, first thing we need to specify the method if the method is other than get get is the default method. And then we need to specify yet another value which is the value. So, in here what is the value well is nothing but the URL pattern, which this method will handle. and the value would be slash posts. Good enough nice.
Now this method will handle all the post request on the URL patterns slash post in our micro service. So this is cool nicer stuff. Now, there is one more thing, whenever we are receiving a request of post type on our URL slash post, the information should get converted as an object of post type and this variable should get initialized. Now in order to perform all of these tasks, we again have a annotation and the name of the annotation is request body and now our work is done. So this is cool enough that how one small little annotation is performing multiple tasks or for converting Information tour appropriate format and also associating and initializing the value to a specific variable, nicer stuff. Now let us navigate to this particular method body.
So I will right click and open the declaration. Here is the declaration. Now adding the element in the list is fairly simple. So in here, we will simply tap and posts dot add, and we'll pass on this element list element. Alright, so this is good, this is nice. Now let us quickly run this application.
And I will right click and run this Spring Boot app. It will take couple of seconds and it is up and running. Let us navigate to Google Chrome and in here we have already installed this postman REST client. Here is our postman REST client and the URL is localhost colon 8080 slash posts. Now friends who when we send in a get request to this URL, we will get a response and here is the response All right. So, this is good enough.
And we can also send in a get request to a specific ID. For example, if we try to fetch the information with ID two, that is again possible and here is the output. Now, this is cool enough, let me copy this particular sample data. And now moving forward, let us send an a POST request. So in here the URL would be localhost colon 8080. And using this drop down, we will select the method as post.
Now in here we need to send some data and this data would be in the form of raw format. So let us paste the sample data and we will make some changes. We will give the ID as 11 maybe, and title as for example, JSP body as JSP tutorial All right, let me also copy this part. And now friends apart from sending in the data, we need to also do one small little thing we need to select the format in which we are sending this data and the format is JSON All right. So, everything seems to be good enough let me send in the request and here is the response there is some kind of error and the error is based on this character set which is not supported. If I also show you our application on the console, we will get this warning.
So here is this warning and if we check the warning, it will say HTTP media type not supported exception, right. So in here we need to do something. Now friends understand this. In here we are making use of this extension postman This is a REST client. Now based on your web browser based On the extension you are using the interface will definitely vary. Now this extension is a smart enough.
And by default, it sends in a couple of header values. And here are the header values. Now definitely content type header value, which is set to JSON is something we need. But apart from that it is also adding couple of extra things, which we don't need and which is responsible in creating this error. Now how to fix this error? answer is very simple, we will explicitly set the header value.
So in here, when we send in the response, we also have this button header. So we will click on this first of all, we will send in the header for content type. and the value would be application slash JSON. So let me paste in the value in here. And we don't need any additional header in here only one header is required. Now friends if We pass on a custom header this default header won't be used.
Now, let us again retry and here is the response the response is nothing because we were able to send in the request properly and that is a no crash. Now friends again if we like get the entire list again we should get a new list where a new element would be added. But somehow there is no new element added. Now why it happened and why we are not able to add in a new element in our list is something which we will check in our next video. All right, so that's it for today's video. And in our next video, we'll unrevealed something interesting.
I hope you guys enjoyed this video. Thanks for watching. Have a nice day and take care