SlideShare a Scribd company logo
• Introduction of Restful Web Service
• Main steps for building a Restful Web Service
• Some frameworks use to build a Restful Web Service
Restful Web Service Agenda
• REST is described by a set of architectural constraints that attempt to minimize latency and
network communications while, at the same time, maximizing the independence and scalability of
component implementations.
• REST characteristic/constraints(ordered)
– Client-Server: Separation of concerns is the principle behind the client-server.
– Stateless: communication must be stateless in nature
– Caching: improve network efficiency
– Uniform interface: The uniform interface simplifies and decouples the architecture, which
enables each part to evolve independently
– Layered System: A REST-based solution can be comprised of multiple architectural layers,
and no one layer can "see past" the next
– Code On-Demand(optional):
Rest concept
• Restful web service built base on the REST architecture style with some
important features:
– Use HTTP protocol for communication between components.
– The web services are completely stateless.
– A caching infrastructure can be leveraged for performance.
– Bandwidth is particularly important and needs to be limited. REST is particularly
useful for limited-profile devices, such as PDAs and mobile phones.
– The service producer and service consumer have a mutual understanding of the
context and content being passed along by having a negotiation.
Restful Web Service
• Simplicity
– Compliant with unique interface for abstraction.
– Reduce step of service define and discovery.
– Utilize non-schema format for transferring data like Json.
• Performance
– Cacheable
– Reduce network latency and bandwidth
• Scalability
– Easy to scale with statelessness
– Support load balancing across service instances via the layered and Uniform interface
constraints.
• Reliability
– Help to avoid single points of failure
• Portability
– The ease of moving services and solutions from one deployed location to another
Benefit of Restful Web Service
• Define resource/service want to expose
• Determine appropriate HTTP methods
• Add authentication/encryption
• Caching appropriate data
• Applying best practices
Main steps building a Restful WS
• Base on business domain model
– An abstraction to represent an object associate with type, data, and relationship: a user,
document, image, services…
– Has data associate with it.
– It is a “noun” in application.
– Resource can contain sub-resource
• Has an identification
– Each resource has an unique associate to identify.
– Can use URL, URI
• Resource representation
– Is a view of resource state at particular time.
– A representation of resource is transferred between components, not resource itself.
– Can be represented by various format: JSON, XML,HTML… to interact between components
– A resource can be represented by many representation.
Restful Resource model
A resource model sample
http://localhost/hotel/{hotelId} -> Single Resource
http://localhost/hotel/1/room/1 -> sub-resource
http://localhost/hotel/1/Reservation/15
http://localhost/hotel/1/Room/4/Reservation/15
• Resource metadata
– Id: Identifies the unique ID of a resource.
– Href: Identifies the URL of the current resource.
– Link: Identifies a relationship for a resource. This attribute is itself an object and has “rel”
“href” attributes.
– This can be referred to HATEOAS
• Resource state and application state
– Resource state: value of resource at particular time and maintained at server, be persistent
and survivable, ex purchase status….
– Application state: maintain at client, the way client interact with server, like paging info,
authentication info….and can refer as session state
– Each client request encapsulating all necessary application state , server doesn’t maintains
session state for working with each client….
Resource model
Resource state and application state
• Use HTTP as a standard protocol for manipulate resource
– Used to transfer representation of resource over network
– Utilize all verbs in HTTP
– Hierarchy the URI to express hierarchy parameter
• GET to retrieve a resource
– GET http://www.example.com/hotel/12345
– Is safe and Idempotent
– Is cacheable
• DELETE to delete a resource
– DELETE http://www.example.com/hotel/12345
Operation on Resource
• POST to add a resource
– POST http://www.example.com/customers
– Create resources when you do not know the resource identifier.
• PUT to update a resource
– Requests you MUST send all the available properties/values, not just the ones
you want to change.
– Is Idempotent
– Can use to create new Resource.
• For other operations to represent status(not state) of resource belong to a
process: cancel…
– Encapsulate in the resource representation.
– Define another resource
Operation on resource
Resource operation samples
Guest cancel reservation:
DELETE /guest/1/reservation/233?cance=true
Guest transfer money for reservation:
POST /guest/1/reservation/233/acount/1/transfer/2
Register a user
POST /register/
Operation on resource summary
• Authentication
– Various approaches can be used
• Authorization
– Role of user to use service
• Other consideration
– Validation all input on server
– Validate Malformed XML/JSON
– No sensitive data in URL
Restful WS security
• Authentication a restful Web Service
– Stateless , so can’t rely on session to keep authentication info.
– Client need to provide all necessary info a each request.
– Base on some methods: Basic, Digest, Token base, Oauth2
• Basic authentication
– Send pair of Username/Password encode base64.
– Not secure
• Digest authentication
– Password is encrypted using MD-5
– More secure than Basic Authentication.
• Token-base authentication
• Oauth2 approach
Restful WS: Authentication
Token Base Authentication
• Database for validating token
• Json web token for self validation token.
Oauth2 authentication
• The API suggests its own usage
– Using common and concrete terms
– Using noun, not verb: /getAllCars -> /cars
– Do not mix up singular and plural nouns, prefer plural for all resources.
• JSON when possible, XML if have to
• SSL everywhere - all the time
• Deal with collection of resources via GET
– Appling filter via query parameter
– Sort the result
– Limiting which fields are returned by the API
• Average granularity
– Balancing between Fine grained and Coarse Grained
– Don’t mix DB CRUD and Resource CRUD.
• Use sub-resources for relations
• Updates & creation should return a resource representation
– Prevent an API consumer from having to hit the API again
Some best practices
• Versioning with timestamp, a release number and in the path, not header
• Leverage the HTTP status codes and error In a payload
• Allow overriding HTTP method
– Some proxies support only POST and GET methods, using custom HTTP Header X-HTTP-
Method-Override.
• Use HTTP headers for specifying serialization formats
– Content-Type defines the request format
– Accept defines a list of acceptable response formats
• Self-description the request-response.
• Stateless design.
Some other best practices
• Java platform
– Base on JAX-RS specification stand for Java API for RESTful Web Services
– Various compliant implementation: Jersey, RESTEasy
– Spring MVC also support building a Restful Web Service.
• .Net platform
– Using ASP.NET Web API
– WCF
• Other platforms
– Scala with Akka HTTP
– Golang with Revel
Frameworks/Tools to build a Restful WS
• Annotation
– @Path: is used to define a URI matching pattern for incoming HTTP requests to
a specific resource. URI value can be a regular expression, variables are
denoted by braces { and }:
@Path("/users/{username}") -> http://example.com/users/Galileo
@Path("{database}-db")
public Object getDatabase(@PathParam("database") String db) ->
http://example.com/oracle-db
– @GET: HTTP GET method is used to retrieve a representation of a resource,
and It is both an idempotent and safe operation
• GET http://www.example.com/customers/12345
• GET http://www.example.com/customers/12345/orders
– @POST: HTTP POST to *create* new resources
• POST http://www.example.com/customers
• POST http://www.example.com/customers/12345/orders
JAX-RS
• Annotation
– @PUT: HTTP PUT to create/update a resource, this is an idempotent
– @DELETE: HTTP DELETE use to delete a resource
– @PathParam: retrieval based on id like GET /employee/{id}
– @QueryParam: for filtering, allows to inject individual URI query
parameter
GET /customers?start=0&size=10 ->
@GET(“/customers”) @Produces("application/xml")
public String getCustomers(@QueryParam("start") int start,
@QueryParam("size") int size)
– @FormParam: used to access application/x-www-formurlencoded request
bodies.
– @DefaultValue
– @Cookie: use to retrieve the cookie value sending by client.
JAX-RS
• Asynchronous
– Client asynchronous call by polling using Future or callback using AsyncInvoker
interface.
– Server side asynchronous implementation
• Bean validation
– Supports the Bean Validation to verify JAX-RS resource classes.
– Using annotation: @NotNull, @Email..
• Filter and handler
– Server filter: Request Filter and Response Filter by implementing
ContainerRequestFilter, ContainerRequestFilter.
– Client filter: Request Filter and Response Filter by implementing
ClientRequestFilter, ClientResponseFilter.
JAX-RS
• Content negotiation
– Client/Server can specify the expected content:
• Media: GET /library Accept: application/json
• Language: GET /stuff Accept-Language: en-us, es
• Encode:
– Using annotation:
• @Consumes: specify which MIME media types of representations a resource can
accept, or consume, sending from the client.
• @Produces: specify the MIME media types of representations a resource can produce
and send back to the client: application/json, application/xml, text/html, image/jpeg,
image/png
• Client API
• HATEOAS
JAX-RS
Other useful tools
• Rest Client
– Google Advanced Rest Client
• Document maker
– Swagger
– RAML
• Json validation
– Json parser(http://json.parser.online.fr/)
• Monitor
– Mashape(https://www.mashape.com/)
– Kibana with Logstash
THANK YOU

More Related Content

PPTX
Soap and restful webservice
PPTX
Overview of RESTful web services
PPTX
PDF
Rest web services
PPTX
Implementation advantages of rest
PPTX
REST API Design
PPTX
Rest & RESTful WebServices
PDF
REST - Representational state transfer
Soap and restful webservice
Overview of RESTful web services
Rest web services
Implementation advantages of rest
REST API Design
Rest & RESTful WebServices
REST - Representational state transfer

What's hot (20)

PPTX
Restful webservices
PPTX
REST & RESTful Web Service
PPT
RESTful services
PPTX
Hadoop introduction
PDF
Restful web services by Sreeni Inturi
PPTX
REST & RESTful Web Services
PPTX
RESTful Architecture
PDF
SOAP-based Web Services
PDF
Doing REST Right
PPTX
Rest presentation
PPTX
Introduction to RESTful Webservices in JAVA
PDF
REST - Representational State Transfer
PPTX
Designing REST services with Spring MVC
PDF
RESTful Web Services
PDF
Spring Web Services: SOAP vs. REST
PPT
The Rest Architectural Style
PDF
REST API Recommendations
PPT
Soap and Rest
PPT
Introduction to the Web API
PPTX
L18 REST API Design
Restful webservices
REST & RESTful Web Service
RESTful services
Hadoop introduction
Restful web services by Sreeni Inturi
REST & RESTful Web Services
RESTful Architecture
SOAP-based Web Services
Doing REST Right
Rest presentation
Introduction to RESTful Webservices in JAVA
REST - Representational State Transfer
Designing REST services with Spring MVC
RESTful Web Services
Spring Web Services: SOAP vs. REST
The Rest Architectural Style
REST API Recommendations
Soap and Rest
Introduction to the Web API
L18 REST API Design
Ad

Viewers also liked (20)

PPTX
Overall enterprise application architecture
PPTX
What's an api
PPTX
What’s a REST API and why should I care?
PDF
MDN @ 10 Years: Mistakes, Successes, and Lessons
KEY
SOAP and RESTful web services in Sakai
PDF
ReST Vs SOA(P) ... Yawn
PDF
MQTT with Java - a protocol for IoT and M2M communication
PDF
API for Beginners
PPT
API 101 - Understanding APIs
PDF
Restful Web Services
PDF
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
PPT
Web of Science: REST or SOAP?
PDF
Api for dummies
PDF
REST to RESTful Web Service
PPT
API 101 - Understanding APIs.
PDF
Apache Mahout Tutorial - Recommendation - 2013/2014
PDF
RESTful Web Services with Spring MVC
PPT
Understanding REST
PDF
RESTful API Design, Second Edition
PPTX
JSON and REST
Overall enterprise application architecture
What's an api
What’s a REST API and why should I care?
MDN @ 10 Years: Mistakes, Successes, and Lessons
SOAP and RESTful web services in Sakai
ReST Vs SOA(P) ... Yawn
MQTT with Java - a protocol for IoT and M2M communication
API for Beginners
API 101 - Understanding APIs
Restful Web Services
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Web of Science: REST or SOAP?
Api for dummies
REST to RESTful Web Service
API 101 - Understanding APIs.
Apache Mahout Tutorial - Recommendation - 2013/2014
RESTful Web Services with Spring MVC
Understanding REST
RESTful API Design, Second Edition
JSON and REST
Ad

Similar to Restful webservice (20)

PPTX
Pragmatic REST APIs
PPT
APITalkMeetupSharable
PPTX
PPTX
Rest with Java EE 6 , Security , Backbone.js
PDF
Java colombo-deep-dive-into-jax-rs
PPTX
Restful web services with java
PPTX
Rest and Sling Resolution
PPTX
ASP.NET Mvc 4 web api
PPTX
PDF
(ATS6-PLAT04) Query service
PPT
ROA.ppt
PPTX
SharePoint 2013 - What's New
PDF
REST Basics
PDF
OpenTravel Advisory Forum 2012 REST XML Resources
PPTX
Restful webservices
PPT
Rest introduction
PDF
Creating a RESTful api without losing too much sleep
PPTX
Webservices Workshop - september 2014
ODP
Attacking REST API
PPTX
Api Design
Pragmatic REST APIs
APITalkMeetupSharable
Rest with Java EE 6 , Security , Backbone.js
Java colombo-deep-dive-into-jax-rs
Restful web services with java
Rest and Sling Resolution
ASP.NET Mvc 4 web api
(ATS6-PLAT04) Query service
ROA.ppt
SharePoint 2013 - What's New
REST Basics
OpenTravel Advisory Forum 2012 REST XML Resources
Restful webservices
Rest introduction
Creating a RESTful api without losing too much sleep
Webservices Workshop - september 2014
Attacking REST API
Api Design

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
Machine Learning_overview_presentation.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
August Patch Tuesday
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Assigned Numbers - 2025 - Bluetooth® Document
Reach Out and Touch Someone: Haptics and Empathic Computing
cloud_computing_Infrastucture_as_cloud_p
Machine Learning_overview_presentation.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
August Patch Tuesday
Univ-Connecticut-ChatGPT-Presentaion.pdf
Spectral efficient network and resource selection model in 5G networks
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
Group 1 Presentation -Planning and Decision Making .pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
A comparative study of natural language inference in Swahili using monolingua...
NewMind AI Weekly Chronicles - August'25-Week II
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Heart disease approach using modified random forest and particle swarm optimi...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Programs and apps: productivity, graphics, security and other tools
Assigned Numbers - 2025 - Bluetooth® Document

Restful webservice

  • 1. • Introduction of Restful Web Service • Main steps for building a Restful Web Service • Some frameworks use to build a Restful Web Service Restful Web Service Agenda
  • 2. • REST is described by a set of architectural constraints that attempt to minimize latency and network communications while, at the same time, maximizing the independence and scalability of component implementations. • REST characteristic/constraints(ordered) – Client-Server: Separation of concerns is the principle behind the client-server. – Stateless: communication must be stateless in nature – Caching: improve network efficiency – Uniform interface: The uniform interface simplifies and decouples the architecture, which enables each part to evolve independently – Layered System: A REST-based solution can be comprised of multiple architectural layers, and no one layer can "see past" the next – Code On-Demand(optional): Rest concept
  • 3. • Restful web service built base on the REST architecture style with some important features: – Use HTTP protocol for communication between components. – The web services are completely stateless. – A caching infrastructure can be leveraged for performance. – Bandwidth is particularly important and needs to be limited. REST is particularly useful for limited-profile devices, such as PDAs and mobile phones. – The service producer and service consumer have a mutual understanding of the context and content being passed along by having a negotiation. Restful Web Service
  • 4. • Simplicity – Compliant with unique interface for abstraction. – Reduce step of service define and discovery. – Utilize non-schema format for transferring data like Json. • Performance – Cacheable – Reduce network latency and bandwidth • Scalability – Easy to scale with statelessness – Support load balancing across service instances via the layered and Uniform interface constraints. • Reliability – Help to avoid single points of failure • Portability – The ease of moving services and solutions from one deployed location to another Benefit of Restful Web Service
  • 5. • Define resource/service want to expose • Determine appropriate HTTP methods • Add authentication/encryption • Caching appropriate data • Applying best practices Main steps building a Restful WS
  • 6. • Base on business domain model – An abstraction to represent an object associate with type, data, and relationship: a user, document, image, services… – Has data associate with it. – It is a “noun” in application. – Resource can contain sub-resource • Has an identification – Each resource has an unique associate to identify. – Can use URL, URI • Resource representation – Is a view of resource state at particular time. – A representation of resource is transferred between components, not resource itself. – Can be represented by various format: JSON, XML,HTML… to interact between components – A resource can be represented by many representation. Restful Resource model
  • 7. A resource model sample http://localhost/hotel/{hotelId} -> Single Resource http://localhost/hotel/1/room/1 -> sub-resource http://localhost/hotel/1/Reservation/15 http://localhost/hotel/1/Room/4/Reservation/15
  • 8. • Resource metadata – Id: Identifies the unique ID of a resource. – Href: Identifies the URL of the current resource. – Link: Identifies a relationship for a resource. This attribute is itself an object and has “rel” “href” attributes. – This can be referred to HATEOAS • Resource state and application state – Resource state: value of resource at particular time and maintained at server, be persistent and survivable, ex purchase status…. – Application state: maintain at client, the way client interact with server, like paging info, authentication info….and can refer as session state – Each client request encapsulating all necessary application state , server doesn’t maintains session state for working with each client…. Resource model
  • 9. Resource state and application state
  • 10. • Use HTTP as a standard protocol for manipulate resource – Used to transfer representation of resource over network – Utilize all verbs in HTTP – Hierarchy the URI to express hierarchy parameter • GET to retrieve a resource – GET http://www.example.com/hotel/12345 – Is safe and Idempotent – Is cacheable • DELETE to delete a resource – DELETE http://www.example.com/hotel/12345 Operation on Resource
  • 11. • POST to add a resource – POST http://www.example.com/customers – Create resources when you do not know the resource identifier. • PUT to update a resource – Requests you MUST send all the available properties/values, not just the ones you want to change. – Is Idempotent – Can use to create new Resource. • For other operations to represent status(not state) of resource belong to a process: cancel… – Encapsulate in the resource representation. – Define another resource Operation on resource
  • 12. Resource operation samples Guest cancel reservation: DELETE /guest/1/reservation/233?cance=true Guest transfer money for reservation: POST /guest/1/reservation/233/acount/1/transfer/2 Register a user POST /register/
  • 14. • Authentication – Various approaches can be used • Authorization – Role of user to use service • Other consideration – Validation all input on server – Validate Malformed XML/JSON – No sensitive data in URL Restful WS security
  • 15. • Authentication a restful Web Service – Stateless , so can’t rely on session to keep authentication info. – Client need to provide all necessary info a each request. – Base on some methods: Basic, Digest, Token base, Oauth2 • Basic authentication – Send pair of Username/Password encode base64. – Not secure • Digest authentication – Password is encrypted using MD-5 – More secure than Basic Authentication. • Token-base authentication • Oauth2 approach Restful WS: Authentication
  • 16. Token Base Authentication • Database for validating token • Json web token for self validation token.
  • 18. • The API suggests its own usage – Using common and concrete terms – Using noun, not verb: /getAllCars -> /cars – Do not mix up singular and plural nouns, prefer plural for all resources. • JSON when possible, XML if have to • SSL everywhere - all the time • Deal with collection of resources via GET – Appling filter via query parameter – Sort the result – Limiting which fields are returned by the API • Average granularity – Balancing between Fine grained and Coarse Grained – Don’t mix DB CRUD and Resource CRUD. • Use sub-resources for relations • Updates & creation should return a resource representation – Prevent an API consumer from having to hit the API again Some best practices
  • 19. • Versioning with timestamp, a release number and in the path, not header • Leverage the HTTP status codes and error In a payload • Allow overriding HTTP method – Some proxies support only POST and GET methods, using custom HTTP Header X-HTTP- Method-Override. • Use HTTP headers for specifying serialization formats – Content-Type defines the request format – Accept defines a list of acceptable response formats • Self-description the request-response. • Stateless design. Some other best practices
  • 20. • Java platform – Base on JAX-RS specification stand for Java API for RESTful Web Services – Various compliant implementation: Jersey, RESTEasy – Spring MVC also support building a Restful Web Service. • .Net platform – Using ASP.NET Web API – WCF • Other platforms – Scala with Akka HTTP – Golang with Revel Frameworks/Tools to build a Restful WS
  • 21. • Annotation – @Path: is used to define a URI matching pattern for incoming HTTP requests to a specific resource. URI value can be a regular expression, variables are denoted by braces { and }: @Path("/users/{username}") -> http://example.com/users/Galileo @Path("{database}-db") public Object getDatabase(@PathParam("database") String db) -> http://example.com/oracle-db – @GET: HTTP GET method is used to retrieve a representation of a resource, and It is both an idempotent and safe operation • GET http://www.example.com/customers/12345 • GET http://www.example.com/customers/12345/orders – @POST: HTTP POST to *create* new resources • POST http://www.example.com/customers • POST http://www.example.com/customers/12345/orders JAX-RS
  • 22. • Annotation – @PUT: HTTP PUT to create/update a resource, this is an idempotent – @DELETE: HTTP DELETE use to delete a resource – @PathParam: retrieval based on id like GET /employee/{id} – @QueryParam: for filtering, allows to inject individual URI query parameter GET /customers?start=0&size=10 -> @GET(“/customers”) @Produces("application/xml") public String getCustomers(@QueryParam("start") int start, @QueryParam("size") int size) – @FormParam: used to access application/x-www-formurlencoded request bodies. – @DefaultValue – @Cookie: use to retrieve the cookie value sending by client. JAX-RS
  • 23. • Asynchronous – Client asynchronous call by polling using Future or callback using AsyncInvoker interface. – Server side asynchronous implementation • Bean validation – Supports the Bean Validation to verify JAX-RS resource classes. – Using annotation: @NotNull, @Email.. • Filter and handler – Server filter: Request Filter and Response Filter by implementing ContainerRequestFilter, ContainerRequestFilter. – Client filter: Request Filter and Response Filter by implementing ClientRequestFilter, ClientResponseFilter. JAX-RS
  • 24. • Content negotiation – Client/Server can specify the expected content: • Media: GET /library Accept: application/json • Language: GET /stuff Accept-Language: en-us, es • Encode: – Using annotation: • @Consumes: specify which MIME media types of representations a resource can accept, or consume, sending from the client. • @Produces: specify the MIME media types of representations a resource can produce and send back to the client: application/json, application/xml, text/html, image/jpeg, image/png • Client API • HATEOAS JAX-RS
  • 25. Other useful tools • Rest Client – Google Advanced Rest Client • Document maker – Swagger – RAML • Json validation – Json parser(http://json.parser.online.fr/) • Monitor – Mashape(https://www.mashape.com/) – Kibana with Logstash