SlideShare a Scribd company logo
Gaining the Knowledge of the Open Data
Protocol (OData)
PRAIRIE DEVCON 2015
CHRIS WOODRUFF
Hi, I’m Woody!
• Chris Woodruff
• cwoodruff@live.com
• http://chriswoodruff.com
• http://deepfriedbytes.com
• twitter @cwoodruff
THE AGENDA
BACKGROUND
OF ODATA
UNDERSTANDING
ODATA
PROTOCOL
CONSUME ODATA
WITH
TESTING TOOLS
PRODUCE AN
ODATA FEED
USING RESTier
CONSUME ODATA
WITH AN
UNIVERSAL APP
SURVEY
DATA
API
…are comfortable w/ HTTP and
XML? JSON?
…have created a Data API?
…knows what the web is?
…have a basic understanding of the
term REST?
BACKGROUND OF ODATA
ISSUE Data APIs frequently
create more problems than
solutions
Facebook: What fields
will I get when I read
a post?
Facebook: How do you like a
post?
HOW DO DEVELOPERS KNOW WHAT TO DO?
I GUESS THEY USE DOCS
SO IS THERE REALLY A PROBLEM?
CAN ODATA MAGICALLY CURE THE PROBLEM?
NO BUT IT CAN HELP!
UNDERSTANDING ODATA PROTOCOL
2007
PROJECT ASTORIA
2007
ADO.NET DATA SERVICES
2008
WCF DATA SERVICES
2013
ODATA PART OF WEB API
2012
ODATA V3 RELEASED
2014
ODATA v4 RELEASED
2015
RESTier FRAMEWORK
BASICS OF ODATA
1
Feeds, which are
Collections of typed
Entities
2
OData services can expose
Actions and Functions (v4)
3
OData services expose all
these constructs via URIs
4
OData service may also
expose a Service Metadata
Document
CRUD
PUTGET
POST DELETE
SELECT
INSERT
UPDATE
FULL SQL LIKE QUERY “LANGUAGE”
DELETE
SERVICE METADATA DOCUMENT
CONVENTIONS
http://services.odata.org/OData/OData.svc
__________________________________/
|
service root URI
http://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name
__________________________________/ ________________/ __________________/
| | |
service root URI resource path query options
URL CONVENTIONS
$FILTER
/Suppliers?$filter=Address/City eq 'Redmond‘
01
$ORDERBY
/Products?$orderby=ReleaseDate asc, Rating desc
02
$SELECT
/Products?$select=*,Category/Name
03
$EXPAND
/Products?$select=*,Category/Name&$expand=Category
04
$TOP $SKIP
/Products?$top=5&$skip=2
05
COMBINING URL CONVENTIONS
http://<something>.svc/Players/
?$skip=10
&$top=2
&filter=substringof(‘Wood',nameLast)
&$orderby=nameLast%20desc
&$select=nickname,yearBorn,nameFirst, nameLast
&$format=json
PAYLOAD CONVENTIONS
SUCCESS AND ERROR CODES
200 OK, 201 Created, 415 Unsupported Media Type,
0
1
FORMATS
• JSON
• ATOM
• JSON VERBOSE
0
2
NUANCES
PATCH, Null payloads, etc
0
3
JSON FORMAT
FRIENDLY TO JAVASCRIPT0
1
0
2
0
3
0
4
90% MORE COMPACT
READS LIKE A CUSTOM API
VERY LITTLE ODATA “GUNK”
ATOM FORMAT
ATOM PARSERS EXIST EVERYWHERE0
1
0
2
0
3
0
4
ELEMENT FIELDS MAP TO THEIR
ATOM COUNTERPARTS
GOOD EXAMPLE OF ODATA
INTEROPERABILITY
CAN USE LIKE XML
OTHER ODATA CAPABILITIES
ACTIONS AND FUNCTIONS ALLOW
HYPERMEDIA-BASED METHODS
0
1
0
2
0
3
DEFINED CONVENTIONS FOR
PATCH AND DEEP INSERTS
VOCABULARIES
WHAT NOT TO DO WITH ODATA
NOT A FIT FOR HIGHLY
OPINIONATED APIs
0
1
0
2
0
3
NOT GOOD FOR BULK DATA
TRANSFER
HARD TO BUILD APIs THAT ARE
RADICALLY DIFFERENT THAN
BACKEND
ODATA DOESN’T SUPPORT ALL QUERIES
DOESN’T SUPPORT AGGREGATION
You can’t ask for customers that have at
0
1
0
2
0
3
DOESN’T SUPPORT FILTER EXPANSION
You can’t ask for a customer and only their
orders placed in 2013
DOESN’T SUPPORT “GRAPH” QUERIES
You can ask friend-of-a-friend type queries,
but there are limitations
The OASIS international open standards consortium announced
the approval of the Open Data Protocol (OData) 4.0 and the
OData JSON Format 4.0. These REST-based standards simplify
the querying and sharing of data across applications for re-use in
the enterprise, cloud, and mobile devices. With OData,
information can be accessed from a variety of sources including
relational databases, file systems, content management systems,
and traditional web sites. OData 4.0 and the OData JSON Format
4.0 are now official OASIS Standards, a status that signifies the
highest level of ratification.
RATIFIED MARCH 2014!!
THERE ARE MANY NON-MICROSOFT
PEOPLE ON THE TC!!
ODATA IS A STANDARD!!
WHO USES ODATA?
ANDROID
.NET
JAVA
PHPiOS
.NET
JAVA
WINDOWS PHONE
JAVASCRIPT
RUBY, PHP AND MANY
OTHERS
NODE.JS
MSSQL, MYSQL, DB2,
INFORMIX, AZUE SQL
WINDOWS AZURE,
SALESFORCE, SAP, MS CRM
JOOMLA, DRUPAL, GEOREST
WHAT DOES ODATA GIVE ME AND MY ORGANIZATION?
EMPOWER INTERNAL KNOWLEDGE
WORKS
EMPOWER EXISTING OR FUTURE
COSTOMERS
MONITIZE DATA FOR UNTAPPED
REVENUE
CONSUME ODATA WITH TESTING TOOLS
XODATA
Web-based OData Visualizer
FIDDLER
Free web debugging tool which
logs all HTTP(S) traffic between
your computer and the
Internet.
LINQPAD (v3)
Interactively query SQL
databases (among other data
sources such as OData or WCF
Data Services) using LINQ, as
well as interactively writing C#
code without the need for an
IDE.
ODATA
VALIDATOR
Enable OData service authors
to validate their
implementation against the
OData specification to ensure
the service interoperates well
with any OData client.
TESTING/DEBUGGING ODATA
www.websitename.comwww.chriswoodruff.com Page Number 32
Demo
PRODUCE AN ODATA FEED USING RESTier
Demo
www.chriswoodruff.com Page Number 35
CONSUME ODATA WITH AN UNIVERSAL APP
Demo
TOMORROW @ 2:30PM ROOM D
BEST PRACTICES
ADVANCED TOPICS SHARE ODATA IN UNIVERSAL APP
VALIDATION
Learning How to Shape
and Configure an OData
Feed for High Performing
Web Sites and Applications
GITHUB
http://github.com/cwoodruff
Projects:
ChinookOData
ChinookWebAPIOData
BaseballStatsODatav4RESTier
Where can you find the source for this talk?
ODATA WORKSHOP
01
02
03
04
TESTING/DEBUGGING ODATA
DEVELPING CLIENT SIDE SOLUTIONS
• Web Apps using Javascript to consume Odata
• iOS Swift development for native iPhone and iPad
apps
• Windows 8.1 and Windows Phone apps C# and WinJS
• Android development using Java
• Using Xamarin for consuming OData
LEARNING THE PROTOCOL
• The Metadata and Service Model of OData
• URI Conventions of OData
• Format Conventions of OData
• OData HTTP Conventions and Operations
DEVELPING SERVER SIDE SOLUTIONS
• ASP.NET Web API
• Advanced Performance Tips and Best Practices
Go to http://ChrisWoodruff.com for more details and
pricing
THANK YOU
Find me around the conference and would enjoy chatting
Email: cwoodruff@live.com
Twitter: @cwoodruff

More Related Content

PPTX
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
PPTX
The Top Tips You need to Learn about Data in your Mobile App
PPTX
Learning How to Shape and Configure an OData Service for High Performing Web ...
PDF
A Look at OData
PPTX
OData and SharePoint
PDF
Apache Olingo - ApacheCon Denver 2014
PPTX
Gaining the Knowledge of the Open Data Protocol (OData)
PPTX
API Design Tour: Dell
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
The Top Tips You need to Learn about Data in your Mobile App
Learning How to Shape and Configure an OData Service for High Performing Web ...
A Look at OData
OData and SharePoint
Apache Olingo - ApacheCon Denver 2014
Gaining the Knowledge of the Open Data Protocol (OData)
API Design Tour: Dell

What's hot (19)

PPTX
OData Introduction and Impact on API Design (Webcast)
PPTX
ODP
Introduction to OData
PPT
Building RESTful Applications with OData
PDF
OData, Open Data Protocol. A brief introduction
PPTX
JAX-RS 2.0 and OData
PPTX
OData Services
PPTX
OData: A Standard API for Data Access
PPTX
Practical OData
PPTX
Open Data Protocol (OData)
PPTX
OData for iOS developers
PDF
Learning To Run - XPages for Lotus Notes Client Developers
PPTX
Odata - Open Data Protocol
PPTX
RESTful API Design Fundamentals
PDF
Overview of GraphQL & Clients
PPTX
Introduction To REST
PDF
GraphQL & Relay - 串起前後端世界的橋樑
PPTX
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
PPTX
Odata V4 : The New way to REST for Your Applications
OData Introduction and Impact on API Design (Webcast)
Introduction to OData
Building RESTful Applications with OData
OData, Open Data Protocol. A brief introduction
JAX-RS 2.0 and OData
OData Services
OData: A Standard API for Data Access
Practical OData
Open Data Protocol (OData)
OData for iOS developers
Learning To Run - XPages for Lotus Notes Client Developers
Odata - Open Data Protocol
RESTful API Design Fundamentals
Overview of GraphQL & Clients
Introduction To REST
GraphQL & Relay - 串起前後端世界的橋樑
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
Odata V4 : The New way to REST for Your Applications
Ad

Similar to Gaining the Knowledge of the Open Data Protocol (OData) - Prairie Dev Con (20)

PPTX
Gaining the Knowledge of the Open Data Protocol (OData)
PPTX
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
PPTX
Connecting to Data from Windows Phone 8
PPTX
How OData Opens Your Data To Enterprise Mobile Applications
PPTX
Breaking down data silos with OData
PPTX
Connecting to Data from Windows Phone 8
KEY
The Open Web
PPTX
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
PDF
The Open Web
PDF
Introduction To Open Web Protocols
PPT
Mobility & Data Strategies
PDF
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
PPTX
OData – Super Cola W3
PPTX
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
PDF
AT&T Shape Hackathon Kick-off
PPTX
OData - The Universal REST API
PDF
Hacking with the Raspberry Pi and Windows 10 IoT Core
PPTX
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
PDF
The Open Web
PDF
Designing Usable APIs featuring Forrester Research, Inc.
Gaining the Knowledge of the Open Data Protocol (OData)
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Connecting to Data from Windows Phone 8
How OData Opens Your Data To Enterprise Mobile Applications
Breaking down data silos with OData
Connecting to Data from Windows Phone 8
The Open Web
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
The Open Web
Introduction To Open Web Protocols
Mobility & Data Strategies
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
OData – Super Cola W3
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
AT&T Shape Hackathon Kick-off
OData - The Universal REST API
Hacking with the Raspberry Pi and Windows 10 IoT Core
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
The Open Web
Designing Usable APIs featuring Forrester Research, Inc.
Ad

More from Woodruff Solutions LLC (9)

PPTX
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...
PPTX
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013
PPTX
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013
PPTX
AzureConf 2013 Developing Cross Platform Mobile Solutions with Azure Mobile...
PPTX
Sql Azure Data Sync
PPTX
Producing an OData feed in 10 minutes
PPTX
Build Conference Highlights: How Windows 8 Metro is Revolutionary
PPTX
Sailing on the ocean of 1s and 0s
PPTX
Breaking down data silos with the open data protocol
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013
AzureConf 2013 Developing Cross Platform Mobile Solutions with Azure Mobile...
Sql Azure Data Sync
Producing an OData feed in 10 minutes
Build Conference Highlights: How Windows 8 Metro is Revolutionary
Sailing on the ocean of 1s and 0s
Breaking down data silos with the open data protocol

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation theory and applications.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Big Data Technologies - Introduction.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
MYSQL Presentation for SQL database connectivity
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Approach and Philosophy of On baking technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Unlocking AI with Model Context Protocol (MCP)
Digital-Transformation-Roadmap-for-Companies.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
20250228 LYD VKU AI Blended-Learning.pptx
Machine learning based COVID-19 study performance prediction
Empathic Computing: Creating Shared Understanding
Encapsulation theory and applications.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
sap open course for s4hana steps from ECC to s4
Big Data Technologies - Introduction.pptx
Spectral efficient network and resource selection model in 5G networks
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Gaining the Knowledge of the Open Data Protocol (OData) - Prairie Dev Con