SlideShare a Scribd company logo
1 of 49
Download to read offline
Smart IT Engineering Ltd. RESTful Web Services Imran M Yousuf Smart IT Engineering Ltd.
Smart IT Engineering Ltd. What's not covered ,[object Object]
Hands on tutorial on how code a RESTful WS
Details of how HTTP works
Details on various media formats
Smart IT Engineering Ltd. What to expect ,[object Object]
Discussion on its constraints
WWW ,[object Object],[object Object]
Constraints of ROA
Examples
Smart IT Engineering Ltd. What to expect ,[object Object]
Questions
Smart IT Engineering Ltd. What is REST ,[object Object]
Proposed by  Dr. Roy Thomas Fielding  in his PhD dissertation titled -  “Architectural Styles and the Design of Network-based Software Architectures”
Smart IT Engineering Ltd. What is REST ,[object Object]
REST is an architectural style composed of specific constraints.
The Constraints -  - Client-Server - Stateless - Cache - Uniform Interface - Layered System - Code-On-Demand  (Optional)
Smart IT Engineering Ltd. REST Constraints ,[object Object]
No restrictions on the  number of the clients
No restriction on  communication medium  /  protocol Client (Browser) Client (CLI – curl, wget) Client (Desktop) Network Client (Mobile) Client (Another System)
Smart IT Engineering Ltd. REST Constraints ,[object Object]
Improve user interface portability across multiple platforms
Improve scalability by simplifying server components
Components evolve independently
Smart IT Engineering Ltd. REST Constraints ,[object Object],Advantages Visibility Reliability Scalability
Smart IT Engineering Ltd. REST Constraints ,[object Object],Advantages Efficient Scalability Performance
Smart IT Engineering Ltd. REST Constraints ,[object Object],[object Object]
Smart IT Engineering Ltd. REST Constraints ,[object Object]
Manipulation of  resources  through representations
Self-descriptive messages
HATEOAS  ( H ypermedia  A s  T he  E ngine  O f  A pplication  S tate)
Smart IT Engineering Ltd. REST Constraints ,[object Object]
A resource is a  conceptual mapping  to a  set of entities , not the entity that corresponds to the mapping at any particular point in time.
If compared of Object Oriented aproach,  Object  if  referrrable  is a resource.
Examples of resources would Books, A Book, An Author, Authors, Authors of a Book, A Publisher, Categories of a Book, A Category etc.
Smart IT Engineering Ltd. REST Constraints ,[object Object]
Other  commonly used  but  less precise  names for a representation include: document, file, and HTTP message entity, instance, or variant.
Message consists of control data, metadata, messages and in some cases hyperlinks to resources.
Examples: Images (image/jpg, image/png, etc.), Markups (text/html, application/xml etc.) and more.
Smart IT Engineering Ltd. REST Constraints ,[object Object]
Therefore, dependent on the current application state, every server response describes the new actions that are available.
The server can change the range of allowable responses in a dynamic way, and a client should adapt its behavior to these changes.
A client of a RESTful application need only know a  single fixed URL  to access it.
Smart IT Engineering Ltd. REST Constraints ,[object Object]
The link  relations  should be  standardized , so that the client knows what selecting that state transition means.
Standardized media types  are also expected to be understood by any client that might use the API.
Application state  transitions are driven  by a  combination of the known processing rules  for each media type, client selection from the server-provided choices in representations received, and the user's manipulation of those representations. Thus interactions are driven by  hypermedia .
Smart IT Engineering Ltd. REST What is the biggest known RESTful System on planet Earth?
Smart IT Engineering Ltd. REST World Wide Web a.k.a Internet ,[object Object]

More Related Content

What's hot

Rest & RESTful WebServices
Rest & RESTful WebServicesRest & RESTful WebServices
Rest & RESTful WebServicesPrateek Tandon
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - APIChetan Gadodia
 
The never-ending REST API design debate
The never-ending REST API design debateThe never-ending REST API design debate
The never-ending REST API design debateRestlet
 
RESTful Architecture
RESTful ArchitectureRESTful Architecture
RESTful ArchitectureKabir Baidya
 
Rest api standards and best practices
Rest api standards and best practicesRest api standards and best practices
Rest api standards and best practicesAnkita Mahajan
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsTessa Mero
 
introduction about REST API
introduction about REST APIintroduction about REST API
introduction about REST APIAmilaSilva13
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUDPrem Sanil
 
Learn REST in 18 Slides
Learn REST in 18 SlidesLearn REST in 18 Slides
Learn REST in 18 SlidesSuraj Gupta
 
Test in Rest. API testing with the help of Rest Assured.
Test in Rest. API testing with the help of  Rest Assured.Test in Rest. API testing with the help of  Rest Assured.
Test in Rest. API testing with the help of Rest Assured.Artem Korchevyi
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API SimplifiedJubin Aghara
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web ServicesAngelin R
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web APIBrad Genereaux
 
REST & RESTful Web Service
REST & RESTful Web ServiceREST & RESTful Web Service
REST & RESTful Web ServiceHoan Vu Tran
 

What's hot (20)

Rest & RESTful WebServices
Rest & RESTful WebServicesRest & RESTful WebServices
Rest & RESTful WebServices
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - API
 
The never-ending REST API design debate
The never-ending REST API design debateThe never-ending REST API design debate
The never-ending REST API design debate
 
Rest API
Rest APIRest API
Rest API
 
RESTful Architecture
RESTful ArchitectureRESTful Architecture
RESTful Architecture
 
Rest api standards and best practices
Rest api standards and best practicesRest api standards and best practices
Rest api standards and best practices
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
introduction about REST API
introduction about REST APIintroduction about REST API
introduction about REST API
 
RESTful API - Best Practices
RESTful API - Best PracticesRESTful API - Best Practices
RESTful API - Best Practices
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
Learn REST in 18 Slides
Learn REST in 18 SlidesLearn REST in 18 Slides
Learn REST in 18 Slides
 
Web API Basics
Web API BasicsWeb API Basics
Web API Basics
 
Soap vs rest
Soap vs restSoap vs rest
Soap vs rest
 
Test in Rest. API testing with the help of Rest Assured.
Test in Rest. API testing with the help of  Rest Assured.Test in Rest. API testing with the help of  Rest Assured.
Test in Rest. API testing with the help of Rest Assured.
 
API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API Simplified
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web Services
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
 
REST & RESTful Web Service
REST & RESTful Web ServiceREST & RESTful Web Service
REST & RESTful Web Service
 

Viewers also liked

Restful web services by Sreeni Inturi
Restful web services by Sreeni InturiRestful web services by Sreeni Inturi
Restful web services by Sreeni InturiSreeni I
 
Design Restful Web Service, use SpringMVC as Example
Design Restful Web Service, use SpringMVC as ExampleDesign Restful Web Service, use SpringMVC as Example
Design Restful Web Service, use SpringMVC as ExampleKevingo Tsai
 
Introduction to RESTful Web Services
Introduction to RESTful Web ServicesIntroduction to RESTful Web Services
Introduction to RESTful Web ServicesFelipe Dornelas
 
RESTful Web Services with Jersey
RESTful Web Services with JerseyRESTful Web Services with Jersey
RESTful Web Services with JerseyScott Leberknight
 
Impact of Restful Web Architecture on Performance and Scalability
Impact of Restful Web Architecture on Performance and ScalabilityImpact of Restful Web Architecture on Performance and Scalability
Impact of Restful Web Architecture on Performance and ScalabilitySanchit Gera
 
Rest presentation
Rest  presentationRest  presentation
Rest presentationsrividhyau
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding RESTNitin Pande
 

Viewers also liked (9)

Restful web services by Sreeni Inturi
Restful web services by Sreeni InturiRestful web services by Sreeni Inturi
Restful web services by Sreeni Inturi
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 
Design Restful Web Service, use SpringMVC as Example
Design Restful Web Service, use SpringMVC as ExampleDesign Restful Web Service, use SpringMVC as Example
Design Restful Web Service, use SpringMVC as Example
 
Introduction to RESTful Web Services
Introduction to RESTful Web ServicesIntroduction to RESTful Web Services
Introduction to RESTful Web Services
 
RESTful Web Services with Jersey
RESTful Web Services with JerseyRESTful Web Services with Jersey
RESTful Web Services with Jersey
 
Impact of Restful Web Architecture on Performance and Scalability
Impact of Restful Web Architecture on Performance and ScalabilityImpact of Restful Web Architecture on Performance and Scalability
Impact of Restful Web Architecture on Performance and Scalability
 
Rest presentation
Rest  presentationRest  presentation
Rest presentation
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
 
RESTful API Design, Second Edition
RESTful API Design, Second EditionRESTful API Design, Second Edition
RESTful API Design, Second Edition
 

Similar to RESTful Web Services

The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural StyleRobert Wilson
 
REST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionREST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionGlenn Antoine
 
REST Introduction.ppt
REST Introduction.pptREST Introduction.ppt
REST Introduction.pptKGSCSEPSGCT
 
Rest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookRest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookKaty Slemon
 
RESTfulll web services
RESTfulll web servicesRESTfulll web services
RESTfulll web servicesJuan Sandoval
 
Restful web-services
Restful web-servicesRestful web-services
Restful web-servicesrporwal
 
REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)Sascha Wenninger
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST AssuredTO THE NEW Pvt. Ltd.
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State TransferPeter R. Egli
 
Semantic Web Servers
Semantic Web ServersSemantic Web Servers
Semantic Web Serverswebhostingguy
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST APIstephenbhadran
 

Similar to RESTful Web Services (20)

The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural Style
 
Unit 2
Unit 2Unit 2
Unit 2
 
Rest surekha
Rest surekhaRest surekha
Rest surekha
 
ReSTful API Final
ReSTful API FinalReSTful API Final
ReSTful API Final
 
REST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionREST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of Confusion
 
Rest web service
Rest web serviceRest web service
Rest web service
 
REST Introduction.ppt
REST Introduction.pptREST Introduction.ppt
REST Introduction.ppt
 
Rest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookRest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbook
 
80068
8006880068
80068
 
RESTfulll web services
RESTfulll web servicesRESTfulll web services
RESTfulll web services
 
Restful web-services
Restful web-servicesRestful web-services
Restful web-services
 
Rest introduction
Rest introductionRest introduction
Rest introduction
 
Mini-Training: Let's have a rest
Mini-Training: Let's have a restMini-Training: Let's have a rest
Mini-Training: Let's have a rest
 
REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)
 
Lab7 paper
Lab7 paperLab7 paper
Lab7 paper
 
SFDC REST API
SFDC REST APISFDC REST API
SFDC REST API
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST Assured
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
 
Semantic Web Servers
Semantic Web ServersSemantic Web Servers
Semantic Web Servers
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST API
 

Recently uploaded

GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FESTBillieHyde
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch TuesdayIvanti
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarThousandEyes
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Muhammad Tiham Siddiqui
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIVijayananda Mohire
 

Recently uploaded (20)

GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FEST
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? Webinar
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile Brochure
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
 

RESTful Web Services

  • 1. Smart IT Engineering Ltd. RESTful Web Services Imran M Yousuf Smart IT Engineering Ltd.
  • 2.
  • 3. Hands on tutorial on how code a RESTful WS
  • 4. Details of how HTTP works
  • 5. Details on various media formats
  • 6.
  • 7. Discussion on its constraints
  • 8.
  • 11.
  • 13.
  • 14. Proposed by Dr. Roy Thomas Fielding in his PhD dissertation titled - “Architectural Styles and the Design of Network-based Software Architectures”
  • 15.
  • 16. REST is an architectural style composed of specific constraints.
  • 17. The Constraints - - Client-Server - Stateless - Cache - Uniform Interface - Layered System - Code-On-Demand (Optional)
  • 18.
  • 19. No restrictions on the number of the clients
  • 20. No restriction on communication medium / protocol Client (Browser) Client (CLI – curl, wget) Client (Desktop) Network Client (Mobile) Client (Another System)
  • 21.
  • 22. Improve user interface portability across multiple platforms
  • 23. Improve scalability by simplifying server components
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Manipulation of resources through representations
  • 31. HATEOAS ( H ypermedia A s T he E ngine O f A pplication S tate)
  • 32.
  • 33. A resource is a conceptual mapping to a set of entities , not the entity that corresponds to the mapping at any particular point in time.
  • 34. If compared of Object Oriented aproach, Object if referrrable is a resource.
  • 35. Examples of resources would Books, A Book, An Author, Authors, Authors of a Book, A Publisher, Categories of a Book, A Category etc.
  • 36.
  • 37. Other commonly used but less precise names for a representation include: document, file, and HTTP message entity, instance, or variant.
  • 38. Message consists of control data, metadata, messages and in some cases hyperlinks to resources.
  • 39. Examples: Images (image/jpg, image/png, etc.), Markups (text/html, application/xml etc.) and more.
  • 40.
  • 41. Therefore, dependent on the current application state, every server response describes the new actions that are available.
  • 42. The server can change the range of allowable responses in a dynamic way, and a client should adapt its behavior to these changes.
  • 43. A client of a RESTful application need only know a single fixed URL to access it.
  • 44.
  • 45. The link relations should be standardized , so that the client knows what selecting that state transition means.
  • 46. Standardized media types are also expected to be understood by any client that might use the API.
  • 47. Application state transitions are driven by a combination of the known processing rules for each media type, client selection from the server-provided choices in representations received, and the user's manipulation of those representations. Thus interactions are driven by hypermedia .
  • 48. Smart IT Engineering Ltd. REST What is the biggest known RESTful System on planet Earth?
  • 49.
  • 50. Feeds
  • 51.
  • 52.
  • 54. Smart IT Engineering Ltd. REST Questions?
  • 55. Smart IT Engineering Ltd. RESTful Web Service What is RESTful Web Service or API? Any system following fulfilling the constraints, thus definition, of REST is a RESTful Web Service.
  • 56.
  • 57. RESTful Web Service design and architecture grows around resource .
  • 58. All WWW sites are inherently REST-like and can easily be RESTful hence RESTful Web Service; e.g. Google Search Engine.
  • 59. Web Service not only consists of either HTML markups, CSS and JavaScript, or other media formats, but may consist both
  • 60.
  • 61. Resource-Oriented Architecture is about REST-ful system with the technologies of the Web
  • 62.
  • 63. A URI is a name and address of a resource.
  • 64. A Resource may have many URIs but needs to have at least one .
  • 65. A Resource may have one or more representations; i.e. it may not have any representations at all.
  • 66.
  • 67. It does not hurt to have readable URIs
  • 68. If Resource has multiple variants, i.e. combination of media format (atom xml, html etc.), encoding (ASCII, UTF-8 etc.) and language (en-US, bn etc.), besides supporting content negotiation, URI for each variant is beneficial for external linking.
  • 69.
  • 70. Use Vary header in response in case a URI support multiple representations
  • 71. Use Location header in response to specify the exact URI to the variant in case of nice URIs.
  • 72.
  • 73.
  • 74.
  • 76.
  • 77. IOW an addressable application exposes URI for every bit of information it can conceivably serve
  • 78. This usually refers to infinite URIs
  • 79. Consider a search resource, e.g. Google Search, A paginated atom feed of all books of a bookstore etc.
  • 80.
  • 81. Introducing Application State and Resource State.
  • 82. Application State resides on client side ensuring every request can be treated individually by the server without considering the past requests from the client
  • 83. Resource State is data that makes up the resource. It resides server side and in case of write-able resource can be modified through its representation
  • 84.
  • 85. Book has name, ISBN only. (ignoring publisher, author(s) and categories for now).
  • 86. It has 2 representations HTML and WWW URL Encoded.
  • 87. Client can track how it reached the book in its client application state. Note different apps may reach to the same resource in different ways. E.g., one from Google Search another from a Facebook app.
  • 88. The resource state, i.e. the current name and ISBN resides on the server side and is indifferent for any client.
  • 89. Clients receive the representations of the resource and provides the server with the same to edit its information.
  • 90.
  • 91. So for every book resource there would be at least 5 related, i.e. Connected/Linked resource. They are the book's authors resource , the book's categories resource , the book's publisher resource , an author of the book (from first resource), a category of the book (from the 3 rd resource).
  • 92. Smart IT Engineering Ltd. ROA – Resources /books /books/A /books/B /books/C /books/A/authors /books/A/publishers /pubs/A /authors/A /pubs/A/books /authors/A/books /pubs /authors /
  • 93. Smart IT Engineering Ltd. ROA – Resource Templates /books /books/{id} /books/{id} /books/{id} /books/{id}/authors /books/{id}/publishers /pubs/{id} /authors/{id} /pubs/{id}/books /authors/{id}/books /pubs /authors /
  • 94.
  • 95. The specifics are in context to HTTP
  • 96. It basically follows the HTTP specification, does not change any definition but restricts on some of the operations usually performed
  • 97. IMPORTANT – It remains same across all RESTful WS Providers, reducing learning curve.
  • 98.
  • 99. PUT – To create a resource if the URI is known or replace (completely) the current state of the resource
  • 100. DELETE – Delete the current resource. Might not actually physically delete the data just change the state.
  • 101.
  • 102. Append state data to current resource, i.e. partially update the state of the resource
  • 103.
  • 104. In overloading POST with 2 ops one should consider breaking the resource to avoid overloading.
  • 105.
  • 106. Last Modified Date – Last-Modified & If-Unmodified-Since
  • 107.
  • 108. Cache-Control header for controlling cache
  • 109.
  • 110.
  • 111. 201 Created for returning that resource is created, in conjunction with Location header pointing to the created resource.
  • 112. 202 Accepted for returning that request accepted but will process at a later time without any guarantee.
  • 113. 204 No Content for specifying no message entity
  • 114.
  • 115. 303 See Other for redirecting using the Location header pointing to the actual resource.
  • 116. 304 Not Modified for conditional GET when condition is unmet, i.e. client can server from client cache.
  • 117. 301 Move Permanently If a resource URI has been changed, e.g. the template for books changed to /r/books from /books.
  • 118.
  • 119. 401 Unauthorized and 403 Forbidden for authentication and authorization failures respectively.
  • 120. 404 Not Found for not being able to resolve the URI to a resuorce.
  • 121. 406 Not Acceptable If none variants requested can be served by the server
  • 122. 412 Preconditioned Failed if the conditions in request not met. Useful lock like feature in case of updates.
  • 123. 415 Unsupported Media Type when request entity is not recognized by server for processing.
  • 124.
  • 125. Safety – refers to GET and HEAD not changing any state of the resources concerned, but might have side effects, e.g. hit counters.
  • 126. Idempotence – Repeating any one of PUT, POST, DELETE on a resource any number of will yield the same result.
  • 127.
  • 128. Not realizing HATEOAS, i.e. Linked and Connectedness
  • 129. Not realizing the strength of content negotiation, i.e. variant support
  • 130. Not realizing strength of conditional requests
  • 131. Not realizing the power of HTTP Cache
  • 132. Smart IT Engineering Ltd. RESTful Web Services & ROA Questions?
  • 133.
  • 134. Use of URI to address resources
  • 135.
  • 136. Support of different media formats
  • 138.
  • 140. Identify resource templates from objects and their cardinal relations
  • 141. Design uri templates for resource templates
  • 142. Specify Entity tag generation algorithm for resources as applicable
  • 143. Specify cache directives for resources
  • 144. Choose supporting media types for resources
  • 145.
  • 146. Contents can be separated logically in a boundary such that their definition and data can easily identified. Contents should extensively searchable, that is, by the logical partition definition type, free text etc. Contents and their fields can have multiple user configurable representations. All logical partitions should have featured contents.
  • 147.
  • 148. Variation Template - /w/{workspaceId}/vars(/{varId})?
  • 149.
  • 150.
  • 151.
  • 152.
  • 154.
  • 155.
  • 156.
  • 158. Open Search Description (my only preference)
  • 159. Smart IT Engineering Ltd. Design Questions? [email_address]