SlideShare uma empresa Scribd logo
1 de 18
LET’S HAVE A REST !
MAXIME LEMAITRE - 11/04/2013

Private and Confidential
Agenda

•
•
•
•
•
•
•

Introduction
What it is not, what it is
REST constraints
In the web Industry
SOAP Vs REST
REST-style Service in .NET
Conclusion
REST
a vastly misunderstood term

• REpresentational State Transfer is not a
– Philosophy essay
– Language
– Protocol
– Standard, RFC
– Framework of MS, Google, Facebook, …
– Technology
–…
REST
what REST is

• Introduced in 2000 by Roy Fielding
– principal author of HTTP and creator of Apache Web Server

•

REST is an architecture style
– a coordinated set of architectural constraints that restricts the roles and
features of architectural elements, and the allowed relationships between
those elements
• Client–server
• Stateless
• Cacheable
• Layered system
• Uniform interface
• Code on demand (optional)

Conforming to these constraints is referred to as being RESTful
REST
Constraints
Client – Server

Stateless

“No restrictions on the nature of the
client, on the number of the clients
and on communication medium /
protocol”

“... each request from client to server
must contain all of the information
necessary to understand the
request, and cannot take advantage
of any stored context on the
server, independent of any requests
that may have preceded it »

•
•
•
•

Separate data storage concerns
Improve user interface portability
across multiple platforms
Improve scalability by simplifying
server components
Components evolve independently

•
•
•
•

Session state is kept on client
Improved visibility because every
exchange is self descriptive
Easier recoverability from partial
failures
Improved scalability on server
REST
Constraints
Cacheability
“... the data within a response to a
request must be implicitly or
explicitly labeled as cacheable or
non-cacheable. If a response is
cacheable, then a client cache is
given the right to reuse that response
data for later, equivalent requests.”
•
•

Reduces client to server interactions
Improves efficiency, scalability and
user perceived performance

Layered System
“The layered system style or also
popularly referred to as n-layer
system allows an architecture to be
composed of hierarchical layers by
constraining component behavior
such that each component cannot
"see" beyond the immediate layer
with which they are interacting.”
REST
Constraint : Uniform Interface

Information is transferred in a standardized form
•

Considered fundamental to the design of any REST app
Identification of resources
Each resource has a URI and is access through a defined set of HTTP methods
(GET, PUT, POST, DELETE)

•

Manipulation of resources through representations
Each resource can have one or more representations. Such as
application/xml, application/json, text/html, etc. Clients and servers negotiate to select
representation.

•

Self-descriptive messages
Requests and responses contain not only data but additional headers describing how the
content should be handled. Such as if it should be cached, authentication requirements, etc.

•

Hypermedia as the engine of application state (aka HATEOAS)
Clients make state transitions only through actions that are dynamically identified within
hypermedia by the server (e.g., by hyperlinks within hypertext). Except for simple fixed
entry points to the application, a client does not assume that any particular action is
available for any particular resources beyond those described in representations previously
received from the server.
REST
big brother

What is the biggest known RESTful
System on planet Earth?
World Wide Web
RESTful Web Service
REST for the web
•

A RESTful web API (also called a RESTful web service) is a web API implemented
using HTTP and the principles of REST
–
–
–
–
–

•
•

URI (Clean ?)
Internet media types
HTTP Headers
HTTP Response Codes
HTTP Methods
• GET
• POST
• PUT
• DELETE
…

RESTful Web Service uses the existing features of the HTTP protocol.
Layered proxy and gateway components perform additional functions on the
network, such as HTTP caching and security enforcement.
REST
in the web industry

• Definition of REST lost its way when popular services emerged
calling themselves REST which were not
– Having an HTTP server accept GET requests or POST and responding
with XML, JSON or some other data format
is not automatically RESTful

• Not so many RESTful services, but many REST-like services
and web Api ( loose adherence)
– Client scripts
– Exposed Operations
REST
what makes REST-style web services so popular today ?

• Because it’s based on the same constraints that make the
Web successful
– Web was not designed as an Xml Bus with RPC

• Since it uses standard HTTP features, it is much more
simpler, easier, faster and scalable than any other web
technology
• REST-styles permits many different data formats (json, xml, …)
• REST-styles web services can be consumed easily by any
client or device
– Do you know a better way to touch
desktop browsers, mobile, tablets
for any OS or technology ?
REST vs SOAP
SOAP web service

REST-style web service

Support multiple transport protocols (HTTP, TCP, UDP, and HTTP only and more suitable for access from various
custom transports)
browsers, mobile devices etc enabling wide reach.
Enables building services that support multiple encodings
(Text, MTOM, and Binary) of the same message type and
allows switching between them.

Enables building Web APIs that support wide variety of
media types including XML, JSON etc.

Supports building services with WS-* standards like
Reliable Messaging, Transactions, Message Security.

Uses basic protocol and formats such as HTTP,
WebSockets, SSL, JQuery, JSON, and XML. There is no
support for higher level protocols such as Reliable
Messaging or Transactions.

Supports Request-Reply, One Way, and Duplex message
exchange patterns.

HTTP is request/response but additional patterns can be
supported through SignalRand WebSockets integration.

WCF SOAP services can be described in WSDL allowing
automated tools to generate client proxies even for
services with complex schemas.

There is a variety of ways to describe a Web API ranging
from auto-generated HTML help page describing snippets
to structured metadata for OData integrated APIs.
REST
How to build a REST-style Service in .NET ?
•

Using WCF (deprecated)
– Using WebHttpBinding & WebHttpBehavior

•

Using Asp.net Web Api
–
–
–
–
–
–
–
–
–
–
–

Not part of .NET, open-source as MVC
Strong Support URL Routing to produce clean URLs using familiar MVC style semantics
Content Negotiation based on Accept headers for request and response serialization
Support for a host of supported output formats including JSON, XML, ATOM
Strong default support for REST semantics but they are optional
Easily extensible Formatter support to add new input/output types
Convention based design that drives you into doing the right thing for HTTP Services
Very extensible, based on MVC like extensibility model of Formatters and Filters
Self-hostable in non-Web applications
Testable using testing concepts similar to MVC
…
REST
How to build a REST-style Service in .NET ?

/api/products/2
Conclusion
• REST is a vastly misunderstood term
• REST-styles web services are very popular today because they
are simple, easy to use, performant , scalable and can be
consumed by any client
• REST-style Vs SOAP ? Both the REST-style and SOAP have
advantages and disadvantages when it comes to building
services. It’s more related to an architectural Decision.
to rest ...
Appendices
•
•
•
•
•
•
•

http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
http://kellabyte.com/2011/09/04/clarifying-rest/
http://www.asp.net/web-api
http://msdn.microsoft.com/en-us/library/dd203052.aspx
http://msdn.microsoft.com/en-us/magazine/dd942839.aspx
http://rest.elkstein.org/2008/02/what-is-rest.html
http://proceedings.esri.com/library/userconf/devsummit09/papers/keynote_chap
pell.pdf
Find out more
•

On https://techblog.betclicgroup.com/
About Betclic
•
•

•

Betclic Everest Group, one of the world leaders in online gaming, has a unique portfolio
comprising various complementary international brands: Betclic, Everest Gaming, bet-athome.com, Expekt…
Active in 100 countries with more than 12 million customers worldwide, the Group is
committed to promoting secure and responsible gaming and is a member of several
international professional associations including the EGBA (European Gaming and Betting
Association) and the ESSA (European Sports Security Association).
Through our brands, Betclic Everest Group places expertise, technological know-how and
security at the heart of our strategy to deliver an on-line gaming offer attuned to the passion
of our players.

Mais conteúdo relacionado

Mais procurados

Reactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJavaReactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJavaNexThoughts Technologies
 
Functional reactive programming
Functional reactive programmingFunctional reactive programming
Functional reactive programmingAhmed Kamel Taha
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)Panagiotis Kanavos
 
Reactive programming with rx java
Reactive programming with rx javaReactive programming with rx java
Reactive programming with rx javaCongTrung Vnit
 
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter LedbrookGR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter LedbrookGR8Conf
 
Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Serverswebhostingguy
 
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...Thoughtworks
 
Coordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractCoordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
 
Introduction to Reactive programming
Introduction to Reactive programmingIntroduction to Reactive programming
Introduction to Reactive programmingDwi Randy Herdinanto
 
Multi-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarMulti-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingsaykopatt
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (Greek)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (Greek)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)Panagiotis Kanavos
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingSUDIP GHOSH
 
Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)GlobalLogic Ukraine
 
The Actor Model - Towards Better Concurrency
The Actor Model - Towards Better ConcurrencyThe Actor Model - Towards Better Concurrency
The Actor Model - Towards Better ConcurrencyDror Bereznitsky
 
Devops and Immutable infrastructure - Cloud Expo 2015 NYC
Devops and Immutable infrastructure  - Cloud Expo 2015 NYCDevops and Immutable infrastructure  - Cloud Expo 2015 NYC
Devops and Immutable infrastructure - Cloud Expo 2015 NYCJohn Willis
 

Mais procurados (20)

Reactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJavaReactive java - Reactive Programming + RxJava
Reactive java - Reactive Programming + RxJava
 
Functional reactive programming
Functional reactive programmingFunctional reactive programming
Functional reactive programming
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
 
Reactive programming with rx java
Reactive programming with rx javaReactive programming with rx java
Reactive programming with rx java
 
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter LedbrookGR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
GR8Conf 2011: Tuning Grails Applications by Peter Ledbrook
 
Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Servers
 
Introduction to reactive programming
Introduction to reactive programmingIntroduction to reactive programming
Introduction to reactive programming
 
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...
 
Coordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractCoordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud Contract
 
Introduction to Reactive programming
Introduction to Reactive programmingIntroduction to Reactive programming
Introduction to Reactive programming
 
Multi-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarMulti-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and Quasar
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (Greek)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (Greek)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Server side story
Server side storyServer side story
Server side story
 
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
 
Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)
 
The Actor Model - Towards Better Concurrency
The Actor Model - Towards Better ConcurrencyThe Actor Model - Towards Better Concurrency
The Actor Model - Towards Better Concurrency
 
Devops and Immutable infrastructure - Cloud Expo 2015 NYC
Devops and Immutable infrastructure  - Cloud Expo 2015 NYCDevops and Immutable infrastructure  - Cloud Expo 2015 NYC
Devops and Immutable infrastructure - Cloud Expo 2015 NYC
 

Destaque

English 7 unit 01 my hobbies lesson 5 skills 1
English 7 unit 01 my hobbies lesson 5 skills 1English 7 unit 01 my hobbies lesson 5 skills 1
English 7 unit 01 my hobbies lesson 5 skills 1thanh bui
 
Special quadrilaterals proofs ans constructions
Special quadrilaterals  proofs ans constructions Special quadrilaterals  proofs ans constructions
Special quadrilaterals proofs ans constructions cristufer
 
Case study: #GoogleMoLang
Case study: #GoogleMoLangCase study: #GoogleMoLang
Case study: #GoogleMoLangnoreensayoc
 
Respeaking as a part of translation and interpreting curriculum
Respeaking as a part of translation and interpreting curriculumRespeaking as a part of translation and interpreting curriculum
Respeaking as a part of translation and interpreting curriculumUniversity of Warsaw
 
Answers in environmental education @kaye
Answers in environmental education @kayeAnswers in environmental education @kaye
Answers in environmental education @kayeCee Saliendrez
 
Clinical analysis report 14
Clinical analysis report 14Clinical analysis report 14
Clinical analysis report 14Nikee McEyes
 
Rising Asia - Inaugural Issue, April 2015
Rising Asia - Inaugural Issue, April 2015Rising Asia - Inaugural Issue, April 2015
Rising Asia - Inaugural Issue, April 2015Rumman Ahamed
 
An incentive model of partialinformation sharing in supply chain
An incentive model of partialinformation sharing in supply chainAn incentive model of partialinformation sharing in supply chain
An incentive model of partialinformation sharing in supply chainAli Elkhateb
 
2nd international Schools China 2016 Nov 16-18
2nd international Schools China 2016   Nov 16-182nd international Schools China 2016   Nov 16-18
2nd international Schools China 2016 Nov 16-18zamibianzon
 
Score A - Dunia Study Dot Com
Score A - Dunia Study Dot ComScore A - Dunia Study Dot Com
Score A - Dunia Study Dot Comweirdoux
 
hjkjhkjh
hjkjhkjhhjkjhkjh
hjkjhkjhMerjerz
 

Destaque (20)

English 7 unit 01 my hobbies lesson 5 skills 1
English 7 unit 01 my hobbies lesson 5 skills 1English 7 unit 01 my hobbies lesson 5 skills 1
English 7 unit 01 my hobbies lesson 5 skills 1
 
Special quadrilaterals proofs ans constructions
Special quadrilaterals  proofs ans constructions Special quadrilaterals  proofs ans constructions
Special quadrilaterals proofs ans constructions
 
Case study: #GoogleMoLang
Case study: #GoogleMoLangCase study: #GoogleMoLang
Case study: #GoogleMoLang
 
Apuntes
ApuntesApuntes
Apuntes
 
Ten Little Candy Canes
Ten Little Candy CanesTen Little Candy Canes
Ten Little Candy Canes
 
Respeaking as a part of translation and interpreting curriculum
Respeaking as a part of translation and interpreting curriculumRespeaking as a part of translation and interpreting curriculum
Respeaking as a part of translation and interpreting curriculum
 
Answers in environmental education @kaye
Answers in environmental education @kayeAnswers in environmental education @kaye
Answers in environmental education @kaye
 
Clinical analysis report 14
Clinical analysis report 14Clinical analysis report 14
Clinical analysis report 14
 
Rising Asia - Inaugural Issue, April 2015
Rising Asia - Inaugural Issue, April 2015Rising Asia - Inaugural Issue, April 2015
Rising Asia - Inaugural Issue, April 2015
 
Spectral Presentation
Spectral PresentationSpectral Presentation
Spectral Presentation
 
The pharaoh’s curses—the constraint from god
The pharaoh’s curses—the constraint from godThe pharaoh’s curses—the constraint from god
The pharaoh’s curses—the constraint from god
 
JS basics
JS basicsJS basics
JS basics
 
An incentive model of partialinformation sharing in supply chain
An incentive model of partialinformation sharing in supply chainAn incentive model of partialinformation sharing in supply chain
An incentive model of partialinformation sharing in supply chain
 
Root: Ped
Root: PedRoot: Ped
Root: Ped
 
2nd international Schools China 2016 Nov 16-18
2nd international Schools China 2016   Nov 16-182nd international Schools China 2016   Nov 16-18
2nd international Schools China 2016 Nov 16-18
 
Score A - Dunia Study Dot Com
Score A - Dunia Study Dot ComScore A - Dunia Study Dot Com
Score A - Dunia Study Dot Com
 
Tema 08
Tema 08Tema 08
Tema 08
 
hjkjhkjh
hjkjhkjhhjkjhkjh
hjkjhkjh
 
Unit 1.my school
Unit 1.my schoolUnit 1.my school
Unit 1.my school
 
Jacobiano
JacobianoJacobiano
Jacobiano
 

Semelhante a Mini-Training: Let's have a rest

REST Introduction.ppt
REST Introduction.pptREST Introduction.ppt
REST Introduction.pptKGSCSEPSGCT
 
unit -4 spring web services like SOA Arch
unit -4 spring web services like SOA Archunit -4 spring web services like SOA Arch
unit -4 spring web services like SOA Archsudharani127782
 
Restful web services by Sreeni Inturi
Restful web services by Sreeni InturiRestful web services by Sreeni Inturi
Restful web services by Sreeni InturiSreeni I
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIPankaj Bajaj
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIWSO2
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API RecommendationsJeelani Shaik
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Woodruff Solutions LLC
 
REST & SOAP.pptx
REST & SOAP.pptxREST & SOAP.pptx
REST & SOAP.pptxZawLwinTun2
 
Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Aravindharamanan S
 
Overview of REST - Raihan Ullah
Overview of REST - Raihan UllahOverview of REST - Raihan Ullah
Overview of REST - Raihan UllahCefalo
 
Introduction to REST
Introduction to RESTIntroduction to REST
Introduction to RESTkumar gaurav
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Woodruff Solutions LLC
 
APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013Jerome Louvel
 

Semelhante a Mini-Training: Let's have a rest (20)

REST Introduction.ppt
REST Introduction.pptREST Introduction.ppt
REST Introduction.ppt
 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
 
unit -4 spring web services like SOA Arch
unit -4 spring web services like SOA Archunit -4 spring web services like SOA Arch
unit -4 spring web services like SOA Arch
 
Rest surekha
Rest surekhaRest surekha
Rest surekha
 
Overview of java web services
Overview of java web servicesOverview of java web services
Overview of java web services
 
Restful web services by Sreeni Inturi
Restful web services by Sreeni InturiRestful web services by Sreeni Inturi
Restful web services by Sreeni Inturi
 
Wt unit 6 ppts web services
Wt unit 6 ppts web servicesWt unit 6 ppts web services
Wt unit 6 ppts web services
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
 
Rest api design
Rest api designRest api design
Rest api design
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
 
Unit 2
Unit 2Unit 2
Unit 2
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8
 
REST & SOAP.pptx
REST & SOAP.pptxREST & SOAP.pptx
REST & SOAP.pptx
 
Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0
 
Overview of REST - Raihan Ullah
Overview of REST - Raihan UllahOverview of REST - Raihan Ullah
Overview of REST - Raihan Ullah
 
Introduction to REST
Introduction to RESTIntroduction to REST
Introduction to REST
 
Web services
Web servicesWeb services
Web services
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
 
APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013
 

Mais de Betclic Everest Group Tech Team

Mini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation DemystifiedMini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation DemystifiedBetclic Everest Group Tech Team
 

Mais de Betclic Everest Group Tech Team (20)

Mini training - Moving to xUnit.net
Mini training - Moving to xUnit.netMini training - Moving to xUnit.net
Mini training - Moving to xUnit.net
 
Mini training - Introduction to Microsoft Azure Storage
Mini training - Introduction to Microsoft Azure StorageMini training - Introduction to Microsoft Azure Storage
Mini training - Introduction to Microsoft Azure Storage
 
Akka.Net
Akka.NetAkka.Net
Akka.Net
 
Mini training- Scenario Driven Design
Mini training- Scenario Driven DesignMini training- Scenario Driven Design
Mini training- Scenario Driven Design
 
Email Management in Outlook
Email Management in OutlookEmail Management in Outlook
Email Management in Outlook
 
Mini-Training: SSO with Windows Identity Foundation
Mini-Training: SSO with Windows Identity FoundationMini-Training: SSO with Windows Identity Foundation
Mini-Training: SSO with Windows Identity Foundation
 
Mini-Training: Docker
Mini-Training: DockerMini-Training: Docker
Mini-Training: Docker
 
Mini Training Flyway
Mini Training FlywayMini Training Flyway
Mini Training Flyway
 
Mini-Training: NDepend
Mini-Training: NDependMini-Training: NDepend
Mini-Training: NDepend
 
Management 3.0 Workout
Management 3.0 WorkoutManagement 3.0 Workout
Management 3.0 Workout
 
Lean for Business
Lean for BusinessLean for Business
Lean for Business
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Mini-Training: Mobile UX Trends
Mini-Training: Mobile UX TrendsMini-Training: Mobile UX Trends
Mini-Training: Mobile UX Trends
 
Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Mini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation DemystifiedMini-training: Personalization & Recommendation Demystified
Mini-training: Personalization & Recommendation Demystified
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
AngularJS Best Practices
AngularJS Best PracticesAngularJS Best Practices
AngularJS Best Practices
 
Mini-Training: Roslyn
Mini-Training: RoslynMini-Training: Roslyn
Mini-Training: Roslyn
 
Mini-Training: Netflix Simian Army
Mini-Training: Netflix Simian ArmyMini-Training: Netflix Simian Army
Mini-Training: Netflix Simian Army
 
WCF Configuration - The basics
WCF Configuration - The basicsWCF Configuration - The basics
WCF Configuration - The basics
 

Último

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Mini-Training: Let's have a rest

  • 1. LET’S HAVE A REST ! MAXIME LEMAITRE - 11/04/2013 Private and Confidential
  • 2. Agenda • • • • • • • Introduction What it is not, what it is REST constraints In the web Industry SOAP Vs REST REST-style Service in .NET Conclusion
  • 3. REST a vastly misunderstood term • REpresentational State Transfer is not a – Philosophy essay – Language – Protocol – Standard, RFC – Framework of MS, Google, Facebook, … – Technology –…
  • 4. REST what REST is • Introduced in 2000 by Roy Fielding – principal author of HTTP and creator of Apache Web Server • REST is an architecture style – a coordinated set of architectural constraints that restricts the roles and features of architectural elements, and the allowed relationships between those elements • Client–server • Stateless • Cacheable • Layered system • Uniform interface • Code on demand (optional) Conforming to these constraints is referred to as being RESTful
  • 5. REST Constraints Client – Server Stateless “No restrictions on the nature of the client, on the number of the clients and on communication medium / protocol” “... each request from client to server must contain all of the information necessary to understand the request, and cannot take advantage of any stored context on the server, independent of any requests that may have preceded it » • • • • Separate data storage concerns Improve user interface portability across multiple platforms Improve scalability by simplifying server components Components evolve independently • • • • Session state is kept on client Improved visibility because every exchange is self descriptive Easier recoverability from partial failures Improved scalability on server
  • 6. REST Constraints Cacheability “... the data within a response to a request must be implicitly or explicitly labeled as cacheable or non-cacheable. If a response is cacheable, then a client cache is given the right to reuse that response data for later, equivalent requests.” • • Reduces client to server interactions Improves efficiency, scalability and user perceived performance Layered System “The layered system style or also popularly referred to as n-layer system allows an architecture to be composed of hierarchical layers by constraining component behavior such that each component cannot "see" beyond the immediate layer with which they are interacting.”
  • 7. REST Constraint : Uniform Interface Information is transferred in a standardized form • Considered fundamental to the design of any REST app Identification of resources Each resource has a URI and is access through a defined set of HTTP methods (GET, PUT, POST, DELETE) • Manipulation of resources through representations Each resource can have one or more representations. Such as application/xml, application/json, text/html, etc. Clients and servers negotiate to select representation. • Self-descriptive messages Requests and responses contain not only data but additional headers describing how the content should be handled. Such as if it should be cached, authentication requirements, etc. • Hypermedia as the engine of application state (aka HATEOAS) Clients make state transitions only through actions that are dynamically identified within hypermedia by the server (e.g., by hyperlinks within hypertext). Except for simple fixed entry points to the application, a client does not assume that any particular action is available for any particular resources beyond those described in representations previously received from the server.
  • 8. REST big brother What is the biggest known RESTful System on planet Earth? World Wide Web
  • 9. RESTful Web Service REST for the web • A RESTful web API (also called a RESTful web service) is a web API implemented using HTTP and the principles of REST – – – – – • • URI (Clean ?) Internet media types HTTP Headers HTTP Response Codes HTTP Methods • GET • POST • PUT • DELETE … RESTful Web Service uses the existing features of the HTTP protocol. Layered proxy and gateway components perform additional functions on the network, such as HTTP caching and security enforcement.
  • 10. REST in the web industry • Definition of REST lost its way when popular services emerged calling themselves REST which were not – Having an HTTP server accept GET requests or POST and responding with XML, JSON or some other data format is not automatically RESTful • Not so many RESTful services, but many REST-like services and web Api ( loose adherence) – Client scripts – Exposed Operations
  • 11. REST what makes REST-style web services so popular today ? • Because it’s based on the same constraints that make the Web successful – Web was not designed as an Xml Bus with RPC • Since it uses standard HTTP features, it is much more simpler, easier, faster and scalable than any other web technology • REST-styles permits many different data formats (json, xml, …) • REST-styles web services can be consumed easily by any client or device – Do you know a better way to touch desktop browsers, mobile, tablets for any OS or technology ?
  • 12. REST vs SOAP SOAP web service REST-style web service Support multiple transport protocols (HTTP, TCP, UDP, and HTTP only and more suitable for access from various custom transports) browsers, mobile devices etc enabling wide reach. Enables building services that support multiple encodings (Text, MTOM, and Binary) of the same message type and allows switching between them. Enables building Web APIs that support wide variety of media types including XML, JSON etc. Supports building services with WS-* standards like Reliable Messaging, Transactions, Message Security. Uses basic protocol and formats such as HTTP, WebSockets, SSL, JQuery, JSON, and XML. There is no support for higher level protocols such as Reliable Messaging or Transactions. Supports Request-Reply, One Way, and Duplex message exchange patterns. HTTP is request/response but additional patterns can be supported through SignalRand WebSockets integration. WCF SOAP services can be described in WSDL allowing automated tools to generate client proxies even for services with complex schemas. There is a variety of ways to describe a Web API ranging from auto-generated HTML help page describing snippets to structured metadata for OData integrated APIs.
  • 13. REST How to build a REST-style Service in .NET ? • Using WCF (deprecated) – Using WebHttpBinding & WebHttpBehavior • Using Asp.net Web Api – – – – – – – – – – – Not part of .NET, open-source as MVC Strong Support URL Routing to produce clean URLs using familiar MVC style semantics Content Negotiation based on Accept headers for request and response serialization Support for a host of supported output formats including JSON, XML, ATOM Strong default support for REST semantics but they are optional Easily extensible Formatter support to add new input/output types Convention based design that drives you into doing the right thing for HTTP Services Very extensible, based on MVC like extensibility model of Formatters and Filters Self-hostable in non-Web applications Testable using testing concepts similar to MVC …
  • 14. REST How to build a REST-style Service in .NET ? /api/products/2
  • 15. Conclusion • REST is a vastly misunderstood term • REST-styles web services are very popular today because they are simple, easy to use, performant , scalable and can be consumed by any client • REST-style Vs SOAP ? Both the REST-style and SOAP have advantages and disadvantages when it comes to building services. It’s more related to an architectural Decision. to rest ...
  • 17. Find out more • On https://techblog.betclicgroup.com/
  • 18. About Betclic • • • Betclic Everest Group, one of the world leaders in online gaming, has a unique portfolio comprising various complementary international brands: Betclic, Everest Gaming, bet-athome.com, Expekt… Active in 100 countries with more than 12 million customers worldwide, the Group is committed to promoting secure and responsible gaming and is a member of several international professional associations including the EGBA (European Gaming and Betting Association) and the ESSA (European Sports Security Association). Through our brands, Betclic Everest Group places expertise, technological know-how and security at the heart of our strategy to deliver an on-line gaming offer attuned to the passion of our players.