Android Restful Webservice Tutorial – Introduction to RESTful webservice – Part 1

The most buzzing questions among Android developers are:

  1. How to call webservice in Android applications that has been created using Java or Dot Net?
  2. How to invoke RESTful webservice in Android applications?
  3. How to call SOAP webservice in Android applications?

Here in Android Tutorial Blog, we have already discussed lot about using Webservice in Android applications. Take a look at Android Webservice Tutorial to know list of articles we wrote on webservice.

Integrating Android application and Webservice is not that much difficult. We can make it work if we know basics of webservice and the procedure to make webservice call from inside Android applications.

In this post, I will be discussing about creating and invoking RESTful webservice in Android applications.

This tutorial will be published as three parts:

Introduction to RESTful webservice

What is RESTtful webservice?

REST describes a set of architectural principles by which data can be transmitted over a standardized interface (such as HTTP). The acronym REST stands for Representational State Transfer, this basically means that each unique URL is a representation of some object.

REST asks developers to use HTTP methods explicitly and in a way that’s consistent with the protocol definition. This basic REST design principle establishes a one-to-one mapping between create, read, update, and delete (CRUD) operations and HTTP methods. According to this mapping:

To create a resource on the server, use POST.
To retrieve a resource, use GET.
To change the state of a resource or to update it, use PUT.
To remove or delete a resource, use DELETE.

For example:

http://weatherinfo.org/getweather/mumbai – It gets the weather information of Mumbai (one of the Indian cities)
http://employer.com/update/salary/130/3000 – It updates Salary of Employee with Employee ID ‘130’ as $3000.
http://countries.com/add/singapore – It adds country ‘Singapore’ to the list of Countries
http://product.com/delete/dell/inspiron15r – It deletes Dell Inspiron 15R from the list of products

[Domain names mentioned above are just for examples, they are not working domains]

Who is using Restful webservice?

Internet giants like Yahoo, Amazon, eBay and more are using Restful webservice

Rest vs SOAP

REST SOAP
REST stands for REpresentational State Transfer SOAP stands for Simple Object Access Protocol
REST is not XML protocol based SOAP is a XML based messaging protocol
REST doesn’t have any specification SOAP has specifications like WSDL etc
REST doesn’t enforce message format as XML or JSON SOAP enforces message format as XML
Light weight – due to the usage of JSON Heavy weight – due to the usage of XML
Easy to parse the response Bit difficult to parse the response

RESTFul Webservice Request and Response – Drill down

Fist step in designing RESTFul webservice is choosing the right domain name – say weatherinfo.org to retrieve weather information of cities.

Let us take the first example (weatherinfo.org) which takes city name as input, composes weather information of the city and respond back to the browser. Assume the response is in XML format, this can be in other formats like JSON as well.

Here is the structure of Request and Response:

HTTP Request
The client request from the browser will look like:

GET http://weatherinfo.org/getweather/mumbai HTTP/1.1

HTTP Response
The server response will look like

HTTP/1.1 200 Ok
Date: Mon, 14 Apr 2014 10:20:58 GMT
Content-Type: text/xml
Content-length: 139

<City name="Mumbai" datetime="2014-04-14 10:20:58 GMT" >
<Condition>Scattered Clouds</Condition>
<Temp>33</Temp>
</City>

Line 1 is the initial line which has the HTTP response code – 200 OK, lines 2 through 4 are the HTTP headers (there can be lots of headers, only 3 are shown here), line 5 is the mandatory blank line separating header and body, and lines 6 through 10 constitute the “HTTP Body (or content)” – this part is the data that the response carries and can be in any format, not necessarily XML.

In fact, the most commonly used format on the web is HTML – one that web servers use to send back data to browsers. Whatever it is, the “Content-type” header usually specifies it. But if you are writing a web service, JSON is a better choice, but that is upto me. If your web service does not return complex or composite data, the format does not need to be JSON – it can be plain , in which case the body will just be a string of characters.

[pglinkadssmall1]

Advantages of using RESTful webservice

  1. RESTful Web services are designed with less dependence on proprietary middleware (for example, an application server) than the SOAP- and WSDL-based kind.
  2. As per the RESTful interface design, XML or JSON over HTTP is a powerful interface that allows internal applications, such as Asynchronous JavaScript + XML/JSON (Ajax)-based custom user interfaces, to easily connect, address, and consume resources.
  3. The great fit between Ajax and REST has increased the amount of attention REST is getting these days.
  4. Exposing a system’s resources through a RESTful API is a flexible way to provide different kinds of applications with data formatted in a standard way. It helps to meet integration requirements that are critical to building systems where data can be easily combined (mashups) and to extend or build on a set of base, RESTful services into something much bigger.

[pgwriteforus]
[pgfeedback]

Related Articles

Author: Android Guru

Share This Post On
468 ad
  • kirti Hudda

    Thanks a lot.its really helpful for me.. but do you have any tut in which you have designed a web service,if it is then please send me link. actually i have a task to design a web service for my android application and i am new fro web service..

  • Danny Lord

    Great! Keep it up!!! i’ve been searching for weeks now how to send photos within my application thus from one phone to another user on different phone. Was told i could do that using web service but i dont know how. Please HELP me! u all i have left. Any help would be appreciated!!! Thanks.

    • Bharath Simha Gupta

      Hello Danny, you can send photos within the application with the help of GCM

    • AkmalAzlanJamal

      You can try use parse.com as your backend as a service. It is quite easy to use and the documentation is outstanding. By the way, thanks to the author of this tutorial for such an amazing article and tutorials. I keep coming here for more resources on android development. Thanks man

  • Will write separate article on it.
    Thanks.

  • Yup. Planning to write separate post on exchanging images and files between users within the same application. Keep watching this space for more updates on it.

  • Thanks man.

  • Vindhya Pratap Singh

    Thanks guru. I will definitely return some learning for this helpful Tut.

  • You are welcome.

Join now to get more access to our Android Tutorials

Join now to get more access to our Android Tutorials

Once you Join, you will receive Mail containing latest Android Tutorials once a month !!

I promise I wont spam you !!

You have Successfully Subscribed!

Pin It on Pinterest

Shares