REST Introduction

Download Report

Transcript REST Introduction

REST Introduction
吴海生 博克软件(杭州)有限公司
Agenda
•
•
•
•
•
•
•
REST Concept
REST Constrains
REST Data Elements
REST V.S. SOAP
REST V.S. SOA
How to be RESTful
Q&A
REST Concept
REST is
• Representational State Transfer between Resource
• A style of software architecture
• A Virtual state-machine
A network of web pages (a virtual state-machine),
where the user progresses through an application by selecting links (state
transitions), resulting in the next page (representing the next state of the application)
being transferred to the user and rendered for their use.
REST Constraints
• Client-Server
• Separation principle
• Components Independent
• Stateless
• Session state on the client
• Visibility, reliability and scalability
• Trade off (network performance, etc.)
• Cacheable
• A response can be cacheable
• Efficiency but reduce reliability
• Layered system
• System scalability
• Code on demand (optional)
• Extension after deployment
• Uniform Interface
• Simple
REST Data Elements
• Resources and Resource Identifiers
• Uniform Interface (GET, PUT, POST, DELETE)
• Resource Oriented
• Simple and simple is beautiful
HTTP
Method
CRUD
Desc.
POST
CREATE
Create
-
GET
RETRIEVE
Retrieve
Safe,Idempotent,Cacheable
PUT
UPDATE
Update
Idempotent
DELETE
DELETE
Delete
Idempotent
REST Data Elements
Representations
• HTML / XML / images / sounds / …
REST V.S. SOAP
SOAP
• Simple Object Access Protocol
• RPC protocol that go through firewalls
• Communication protocol between applications
• A format for sending messages
REST V.S. SOAP
REST
•“The Web is the universe of globally accessible information”
• Resource oriented
• User-driven interactions via forms
• Few operations (generic interface) on many resources
• URI: Consistent naming mechanism for resources
• Focus on scalability and performance of large scale distributed
hypermedia systems
SOAP
•“The Web is the universal transport for messages”
• Activity/Service oriented
• Orchestrated reliable event flows
• Many operations (service interface) on few resources
• Lack of standard naming mechanism
• Focus on design of integrated (distributed) applications
REST V.S. SOA
Two of most common styles of use of Web Services
•Service-oriented architecture
• “Message oriented” (SOAP)
• Contract provided by WSDL
•REST
• Focus on interacting with stateful resources, rather than
messages or operations.
REST V.S. SOA
SOA principles
•Standardized Service Contracts
•Service Loose Coupling
•Service Abstraction
•Service Reusability
•Service Autonomy
•Service Statelessness
•Service Discoverability
•Service Composability
REST principles
•Unique identifiability of the
resources through URIs
•Uniform interface to access the
resources
•Navigability of the resource
representations through
hypermedia
•Statelessness
Correlation
• REST is an architectural style that inherently helps to attain some
of the basic SOA principles.
REST Introduction
Q&A
REST Introduction
Thank you!