The purpose of the request is to get a response or it is of no use, considering that we also need to understand what type of response is expected against a request. There are two things that we will discuss in this context:
- Response type
- Response code
In the current world, many people think that the of a RESTful web service be a JSON or text having a JSON string. However, we can also use XML in response to a RESTful web service request. A lot of people use JSON in response because it is lightweight and easy to parse. But at the same time, this is just a matter of preference, and depends on the requirement and has nothing to do with REST standards.
Both XML and JSON are ways to format data. XML stands for Extensible Markup Language, having markup syntax. While stands for JavaScript Object Notation, with JavaScript object-like syntax. For more understanding of JSON, please check out http://www.json.org/
We will shortly look into the case study of a blog and will see request and response examples. In this book, will use JSON as the response type, as JSON is simpler than XML. And while developing new applications, we mostly use JSON because it is lightweight and easy to understand. As you can see in the following examples, the same data in JSON is much simpler than XML and only has content that matters.
Here, we are trying to show the data of books having one or more authors:
XML:
<books> <book> <name>Learning Neo4J</name> <authors> <author>Rik Van Bruggen</author> </authors> </book> <book> <name> Kali Linux – Assuring Security by Penetration Testing </name> <authors> <author>Lee Allen</author> <author>Tedi Heriyanto</author> <author>Shakeel Ali</author> </authors> </book> </books>
Now, let's look at the same example in JSON:
{ books: [ { name:"Learning Neo4J", authors:["Rik Van Bruggen"] }, { name:"Kali Linux – Assuring Security by Penetration Testing", authors:["Lee Allen", "Tedi Heriyanto", "Shakeel Ali"] } ] }
You can clearly see from the preceding example, that XML and JSON both convey the same information. However, in JSON it is much easier as well as it needs a lot less words to show the same information.
Hence in the rest of book, we will be using JSON as the response type of our RESTful web services.
Response codes, better known as HTTP status codes, tell us about the status of a request. If an HTTP request is successful, the HTTP status code is 200 which means OK. If there is a server error, it returns 500 status code which means an internal server error. In case of any problem in the request, the HTTP status code is 400 and onwards where 400 status code means a bad request. In case of redirection, the response code is 300 and onwards.
To see complete of response and their usage, see https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
I won't go into details of it as it would be redundant since all of it is already available at the preceding mentioned Wikipedia link. However, we will discuss the different status codes as we proceed.