What REST stands for?
REST stands
for REpresentational State Transfer.
What is REST?
REST is web
standards based architecture and uses HTTP Protocol for data communication. It
revolves around resource where every component is a resource and a resource is
accessed by a common interface using HTTP standard methods. REST was first
introduced by Roy Fielding in 2000.
In REST
architecture, a REST Server simply provides access to resources and REST client
accesses and presents the resources. Here each resource is identified by URIs/
global IDs. REST uses various representations to represent a resource like
text, JSON and XML. Now a days JSON is the most popular format being used in
web services.
Name some of the commonly used HTTP
methods used in REST based architecture?
Following
well known HTTP methods are commonly used in REST based architecture −
GET − Provides a read only access to a resource.
PUT − Used to create a new resource.
DELETE − Ued to remove a resource.
POST − Used to update a existing resource
or create a new resource.
OPTIONS − Used to get the supported
operations on a resource.
What is web service?
A web
service is a collection of open protocols and standards used for exchanging
data between applications or systems. Software applications written in various
programming languages and running on various platforms can use web services to
exchange data over computer networks like the Internet in a manner similar to
inter-process communication on a single computer.
What are RESTful webservices?
Web services
based on REST Architecture are known as RESTful web services. These web
services use HTTP methods to implement the concept of REST architecture. A
RESTful web service usually defines a URI, Uniform Resource Identifier a
service, provides resource representation such as JSON and set of HTTP Methods.
What is a Resource in REST?
REST
architecture treats every content as a resource. These resources can be text
files, html pages, images, videos or dynamic business data. REST Server simply
provides access to resources and REST client accesses and modifies the
resources. Here each resource is identified by URIs/ global IDs.
How to represent a resource in REST?
REST uses
various representations to represent a resource where text, JSON, XML. XML and
JSON are the most popular representations of resources.
What are the best practices to design
a resource representation?
Following
are important points to be considered while designing a representation format
of a resource in a RESTful web services −
Understandability − Both Server and Client should be
able to understand and utilize the representation format of the resource.
Completeness − Format should be able to represent
a resource completely. For example, a resource can contain another resource.
Format should be able to represent simple as well as complex structures of
resources.
Linkablity − A resource can have a linkage to
another resource, a format should be able to handles such situations.
Which protocol is used by RESTful
webservices?
RESTful web
services make use of HTTP protocol as a medium of communication between client
and server.
What is messaging in RESTful
webservices?
A client
sends a message in form of a HTTP Request and server responds in form of a HTTP
Response. This technique is termed as Messaging. These messages contain message
data and metadata i.e. information about message itself.
What is addressing in RESTful
webservices?
Addressing
refers to locating a resource or multiple resources lying on the server. It is
analogous to locate a postal address of a person.
What is URI?
URI stands
for Uniform Resource Identifier. Each resource in REST architecture is
identified by its URI.
What is purpose of a URI in REST
based webservices?
Purpose of
an URI is to locate a resource(s) on the server hosting the web service.
What is format of a URI in REST
architecture?
A URI is of
following format −
<protocol>://<server-address:port>/<service-name>/<ResourceType>/<ResourceID>
What is the purpose of HTTP Verb in
REST based webservices?
VERB
identifies the operation to be performed on the resource.
What are the best practices to create
a standard URI for a web service?
Following
are important points to be considered while designing a URI −
Use Plural Noun − Use plural noun to define
resources. For example, we've used users to identify users as a resource.
Avoid using spaces − Use underscore(_) or hyphen(-)
when using a long resource name, for example, use authorized_users instead of
authorized%20users.
Use lowercase letters − Although URI is case-insensitive,
it is good practice to keep url in lower case letters only.
Maintain Backward Compatibility − As Web Service is a public
service, a URI once made public should always be available. In case, URI gets
updated, redirect the older URI to new URI using HTTP Status code, 300.
Use HTTP Verb − Always use HTTP Verb like GET,
PUT, and DELETE to do the operations on the resource. It is not good to use
operations names in URI.
What is statelessness in RESTful
Webservices?
As per REST
architecture, a RESTful web service should not keep a client state on server.
This restriction is called statelessness. It is responsibility of the client to
pass its context to server and then server can store this context to process
client's further request. For example, session maintained by server is
identified by session identifier passed by the client.
What are the advantages of statelessness
in RESTful Webservices?
Following
are the benefits of statelessness in RESTful web services −
·
Web
services can treat each method request independently.
·
Web
services need not to maintain client's previous interactions. It simplifies
application design.
·
As
HTTP is itself a statelessness protocol, RESTful Web services work seamlessly
with HTTP protocol.
What are the disadvantages of
statelessness in RESTful Webservices?
Following is
the disadvantage of statelessness in RESTful web services −
·
Web
services need to get extra information in each request and then interpret to
get the client's state in case client interactions are to be taken care of.
What do you mean by idempotent
operation?
Idempotent
operations means their result will always same no matter how many times these
operations are invoked.