Representational State Transfer (REST) is defined as an architectural style, which means that it is not a concrete systems architecture, but instead a set of constraints that are applied when designing a systems architecture. We briefly discuss these constraints, but then focus on explaining how the Web is one such systems architecture that implements REST. In particular, the mechanisms of the Uniform Resource Identifiers (URIs), the Hypertext Transfer Protocol (HTTP), media types, and markup languages such as the Hypertext Markup Language (HTML) and the Extensible Markup Language (XML). We also introduce Atom and the Atom Publishing Protocol (AtomPub) as two established ways on how RESTful services are already provided and used on today's Web.
Client-Server: a pull-based interaction style: consuming components pull representations.Stateless: each request from client to server must contain all the information necessary to understand the request, and cannot take advantage of any stored context on the server.Cache: to improve network efficiency responses must be capable of being labeled as cacheable or non-cacheable.Uniform interface: all resources are accessed with a generic interface (e.g., HTTP GET, POST, PUT, DELETE).Named resources - the system is comprised of resources which are named using a URL.Interconnected resource representations - the representations of the resources are interconnected using URLs, thereby enabling a client to progress from one state to another.Layered components - intermediaries, such as proxy servers, cache servers, gateways, etc, can be inserted between clients and resources to support performance, security, etc.
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from
Windows Phone 8
Level: Intermediate to Advanced
Who I am?
MVP, Visual C#
Director at Perficient
Co-host of Deep Fried Bytes Podcast
@cwoodruff / firstname.lastname@example.org / Skype: cwoodruff
You will learn:
• Understand the benefits of using REST web services for
your mobile apps
• Have an understanding to develop solutions against
OData that will give better experiences for your users
• How to shape your data queries to give the best
performance for your mobile apps
• A glimpse into using Windows Azure Mobile Services to
also get to your data in the cloud.
• REST is an architectural style for distributed
• REpresentational State Transfer
• The term originated in 2000 by Roy Fielding for his
• REST states that the existing protocols and principles
of the web are enough to create robust Web Services
– no SOAP is needed
What is REST?
What does REST consist of?
REST is a very simple architecture:
• Application state and functionality is divided into
• Every resource is uniquely addressable using a universal
syntax for hypermedia links
• All resources share a uniform interface for the transfer of
state between a client and a resource
What does REST consist of?
Characteristics of REST
• Uniform Interface
• Named Resources
• Interconnected Resource
• Layered System
Operations of REST
Example of REST
Query a Resource
Open Data Protocol (OData)
• “RESTful” Web protocol
• Designed to work with data across HTTP
• Built on existing Web standards
• Uses popular formats to return data payloads to
• Uses self-describing metadata
• Has multiple options to build implementation based on
• Soon to be a full web standard
• Feeds, which are Collections of typed Entries
• OData services can expose Service Operations
• OData services expose all these constructs via
• OData service may also expose a Service
Full SQL like Query “Language”
service root URI
_______________________________________/ __________________/ _________________/
| | |
service root URI resource path query options
What is an OData URI loo like?
OData Best Practices (Producer)
• Always design your OData feed will server-side paging if
your entity collections hold large amounts of data.
• Looks at server-side validation of queries and data
updates based on the user credentials sent through HTTP
OData Best Practices (Consumer)
• Use Query Projection to only bring back the entity
properties you or your app needs.
• Think about client-side paging even if their exists server-
• Design and implement a client-side data caching function
in your app (unless sensitive data).
AZURE MOBILE SERVICES
AND HOW TO CONSUME IT
IN WINDOWS PHONE