SlideShare a Scribd company logo
OData: What’s New with REST
APIs for Your Database
Sanjeev Mohan, Gartner
Nishanth Kadiyala, Progress
Mark Biamonte, OData TC Member, Progress
2© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Audio Bridge Options & Question Submission
OData: What’s New with
REST APIs for Database
Sanjeev Mohan, Gartner
Nishanth Kadiyala, Progress
Mark Biamonte, OData TC Member, Progress
4© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Agenda
 Modern Data Access Patterns
 Why are companies RESTifying databases?
 OData overview
• Exposing the Database Using OData
• Getting Started with OData
• Demo
5© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Modern Data Access
Patterns
6© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Data Warehouses – still the workhorse analytical
engines
Source: https://en.wikipedia.org/wiki/Data_warehouse
7© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Data Access for Data Lakes
DataLake
{REST}
SQL
Analytical
Mobile / Cloud
8© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Common Data Lake Implementation Technologies
Create Differing Requirements for Data Governance
Hadoop
distributions:
 Simplified data ingestion
and storage with several
processing options
 Data lake management
ecosystem emerging
 Complex deployment and
management
Database management
systems:
 Optimal for certain data
types and formats
 Data processing options
expanding beyond SQL
 Scaling and cost may be
challenges
Cloud-based block
and object stores:
 Simplified data ingestion
and storage
 Bring your own processing
 Nascent management and
security ecosystem
9© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
10© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Virtual Data Lake by REST Enabling Sources
{REST}
{REST}
{REST}
{REST}
{REST}
11© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Goal is to “Connect” data and not “Collect”
 REST APIs are accessible over the internet and thus are much
more user/coder friendly
 REST is stateless and thus can easily be horizontally scaled since
there is no session dependency
 As you monetize data, APIs offer a secure way to expose your
data to users outside your organization
 REST APIs are more human-readable and thus more engaging
 Decoupling the code from the infrastructure will give the
enterprise the flexibility to adopt newer technologies
12© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Why are companies
RESTifying databases?
13© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Transition from SOAP to REST
14© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
SOAP vs REST
SOAP
XML
Uses WSDL to define interface
Stateful
REST
JSON, XML, YAML etc.
Uses HTTP verbs (Get, Post, Put, Delete)
Stateless
15© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
SOAP vs REST
Source: Google Trends
16© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
SOAP vs REST
Source: Google Trends
17© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Use Cases for REST Enabling
Databases
18© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
1. Expose Enterprise Data to SaaS/Cloud via HTTP
Enterprise Data
HTTP / HTTPS
Enterprise
REST APIs
19© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
2. Modernize Access to Enterprise Data
{JSON}
Your DB
RESTAPIs
20© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
2. Modernize Access to Enterprise Data
{JSON}
Your DB
RESTAPIs
21© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
2. Modern Data Access
{JSON}
Your DB
RESTAPIs
22© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
3. Additional Layer means Additional Control
Limit direct access to your DB
Throttling can help protect against resource
monopolization
Decoupling code from the database makes
future transitions easier
23© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Poll Question 1
Which of the following use cases are true for your organization?
 Your database needs to support modern languages such as JS,
node.js, angular, python, etc.
 Sensitive data needs to stay within the firewall (GDPR, etc.)
 Enterprise Data needs to be available from new devices
 Modern Apps need REST end points for integration
 Other
24© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Industry is moving towards REST APIs
Cloud-Hosted Databases
Google Cloud
Azure
Database.com
IBM Cloudant
…
On-Premises Databases
Oracle REST Data Services
Teradata REST API
IBM DB2 Rest Services
MarkLogic REST API
…
25© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Poll Question 2
Which of the following databases are of interest to REST enable?
 Oracle
 SQL Server
 IBM DB2
 Postgres
 MySQL
26© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Poll Question 2 – Part 2
Which of the following databases are of interest to REST enable?
 Amazon Redshift
 Hadoop Frameworks
 Teradata
 OpenEdge
 Other
27© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
28© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
But, every database and REST
API is different… OData is the
Answer
29© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
OData Overview
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.30
An open protocol to allow the creation and consumption of
queryable and interoperable RESTful APIs in a simple and standard way
What is OData?
Progress was the first member to join the OData Technical Committee
Started by
Microsoft in
2007
OASIS
Standard since
Feb 2014
Ratified as an
ISO standard in
Feb 2017
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.31
OData is essentially SQL for the web built on top of standard protocols – HTTP,
JSON & ATOM – while leveraging the REST architecture style
OData is the standard for REST
ODATA
ODATA- The standard REST API
JSON XML Mime
HTTP(S)
32© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Broad Adoption for OData
33© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Exposing the Database
Using OData
34© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Entity
Properties
Navigation Properties
Entity
Properties
Navigation Properties
OData Data Model
Customers
Id: 2
Name: Mark
Status: active
Orders: Customers(1)/Orders
Id: 1
Name: Mark
Status: active
Orders: Customers(1)/Orders
Entity Set
Entity
Properties
Navigation Properties
Schema
Function
Parameters
Return Value
Action
Parameters
35© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Mapping Databases to OData
Database Construct OData Construct
Table Entity Set
Row Entity
Column Property
Stored Procedure Action (or Function)
User Defined Function Function
Primary Key Entity Key
Foreign Key Navigation Property
36© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Mapping SQL to OData
HTTP Method OData REST Operation SQL Command
POST Create a new entity INSERT
GET Retrieve zero or more entities SELECT
PUT Update an Entity (replace semantics) UPDATE
PATCH Update an Entity (update semantics) UPDATE
DELETE Destroy an Entity DELETE
GET Invoke a function and get its results CALL / EXEC
POST Invoke and action and get its results CALL
37© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Self Describing Service – Metadata Document
 Detailed description of the service
URL: <service_root>/$metadata
Entity Type
Complex Type
Function
Action
Type Properties Parameters
Property Attributes Parameter Attributes
Name,Type, MaxLength,
Precision, Scale, Nullable, more
Name,Type, MaxLength,
Precision, Scale, Nullable, more
Navigation Property Return Type (Function)
Key (EntityType) Type, Nullable
Function Import
Action Import
 Information equivalent to SQL Tables, Columns, Primary Key, Foreign Key,
Procedures, ProcedureColumns, Functions, FunctionColumns metadata calls
38© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
URL Query Conventions
https://myodataserver/northwind
________________________/
|
Service Root
https://myodataserver/northwind/Customers('ALFKI')/Orders?$expand=OrderDetails
_________________________/_____________________/_________________/
| | |
Service Root Resource Path Query Options
39© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
ODATA Query Options
System
Query Option
Description SQL Construct
$filter Restrict the entities returned when querying
an entity set to those matching the filter
criteria
WHERE clause
$select Specify the properties to be included in the
returned entities
SELECT list
$orderby Specify the sort order of the returned entities ORDER BY clause
$expand Include related entities and complex types
nested in the returned entities
INNER JOIN
$top and $skip Enable client to page through results TOP/SKIP or LIMIT/OFFSET
$count Include the count of the number of entities
returned in the result
COUNT(*)
$search Restrict the entities returned when querying
an entity set to those matching the search
expression
Full Text Search
$format Specify the desired data format for the
response
N/A
40© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Batch Insert and Transactions
URL: <service_root>/$batch
 Execute multiple operations in
a single OData request.
 Operations in a Change Set
are executed atomically
GET Customers
Batch Request
POST Orders
POST OrderItems
POST OrderItems
POST OrderItems
Change Set
41© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Getting Started with
OData
42© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
OData Libraries - http://www.odata.org/libraries/
.NET Java JavaScript Other
RESTier Apache Olingo Node-odata ODataCpp (C++)
ODataLib SDL OData Frameworks DevExtreme Pyslet Python Package
Edmlib Odata4j o.js ODataStore for CoreData (iOS)
ASP.NET Web API OData Jello Framework OpenUI5 OData4ObjC (iOS)
AdaptiveLINQ ODataJClient JayData OData Client Library for Tcl/Tk
Microsoft.Spatial Breeze.js
43© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Or use Hybrid Data Pipeline to create OData REST API
from your enterprise databases
Why Hybrid Data Pipeline?
• OData from any data
source
• No Coding
• No version control
needed
• Patented on-premises
gateway technology
44© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Demo
45© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Resources Understanding OData in 6 steps: http://www.odata.org/getting-
started/understand-odata-in-6-steps/
 Getting Started Tutorial on OData.org: http://www.odata.org/getting-
started/basic-tutorial/
 Getting Started Tutorial with OData for your enterprise databases:
https://www.progress.com/tutorials/odata/rest-api-for-sql-server-oracle-or-
postgres-via-odata
 REST API Debate across OData, GraphQL, ORDS:
https://dzone.com/articles/rest-api-industry-debate-odata-vs-graphql-vs-ords
 FAQs we hear on OData: https://www.progress.com/blogs/odata-faqs-why-
should-rest-api-developers-use-odata
 [Webinar] OData external data strategies for SaaS vendors with guests from
Microsft and Oracle: http://forms.progress.com/wbr-odata-integration-for-saas
 OData examples across marketing APIs:
https://www.progress.com/blogs/getting-started-with-rest-apis-across-
marketo-eloqua-and-odata
Modern REST APIs for Enterprise Databases - OData
47© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Appendix
48© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Resource
Customers http://myodataserver/northwind/Customers
$select=x,y http://myodataserver/northwind/Customers?$select=CompanyName,CustomerID,Country
$filter http://myodataserver/northwind/Customers?$filter=Country eq 'Germany'
$orderby http://myodataserver/northwind/Customers?$orderby=Country,City desc
$expand http://myodataserver/northwind/Customers?$expand=Orders
$top and $skip http://myodataserver/northwind/Customers?$orderby=Country,City desc&$top=5&$skip=5
$count http://myodataserver/northwind/Customers?$count=true
Query Examples
Service Root: http://myodataserver/northwind
49© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
Putting it altogether
http:// myodataserver/northwind /Customers?
$expand=Orders($select=OrderID,EmployeeID,OrderDate;$filter=EmployeeID eq 4)
&$filter=Country eq 'Germany' and (City eq 'Berlin' or contains(City,'Frankfurt’))
&$select=CustomerID,CompanyName,ContactName,City,Country,Phone
&$orderby=CompanyName desc
&$count=true

More Related Content

What's hot (20)

PDF
SAP Cloud Platform Product Overview
SAP Cloud Platform
 
PDF
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
Amazon Web Services Korea
 
PDF
Future of an abap developer
Robert Eijpe
 
PPTX
[Android] DI in multimodule application
Oleg Mazhukin
 
PPTX
Sapui5 & Fiori
B.Raj Shekhar
 
PPTX
Api application programming interface
Mohit Bishnoi
 
PDF
SAP ODATA Overview & Guidelines
Ashish Saxena
 
PDF
진정한 하이브리드 환경을 위한 올바른 선택, AWS Outposts! - 강동환 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon Web Services Korea
 
PDF
SAP Fiori - what is it and lessons learned from a customer deployment
Paul Snyman
 
PDF
Preparing for Deployment of SAP Ariba Solutions at Your Company
SAP Ariba
 
PPTX
CDS Views.pptx
Suman817957
 
PDF
Cloudhub 2.0
Christopher Co
 
PDF
NetWeaver Gateway- Introduction to OData
SAP PartnerEdge program for Application Development
 
PDF
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사
Amazon Web Services Korea
 
PPTX
SAP Cloud Platform API Management Technical Brief
SAP Cloud Platform
 
PPTX
REST-API introduction for developers
Patrick Savalle
 
PPTX
Introduction to SAP BTP
SureshSuresetti
 
PPTX
Odata V4 : The New way to REST for Your Applications
Alok Chhabria
 
PDF
Data Center Migration Essentials - Adam Saint-Prix Tim Wong
Atlassian
 
PPTX
Fiori Presentation
Steven Zeraua
 
SAP Cloud Platform Product Overview
SAP Cloud Platform
 
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
Amazon Web Services Korea
 
Future of an abap developer
Robert Eijpe
 
[Android] DI in multimodule application
Oleg Mazhukin
 
Sapui5 & Fiori
B.Raj Shekhar
 
Api application programming interface
Mohit Bishnoi
 
SAP ODATA Overview & Guidelines
Ashish Saxena
 
진정한 하이브리드 환경을 위한 올바른 선택, AWS Outposts! - 강동환 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon Web Services Korea
 
SAP Fiori - what is it and lessons learned from a customer deployment
Paul Snyman
 
Preparing for Deployment of SAP Ariba Solutions at Your Company
SAP Ariba
 
CDS Views.pptx
Suman817957
 
Cloudhub 2.0
Christopher Co
 
NetWeaver Gateway- Introduction to OData
SAP PartnerEdge program for Application Development
 
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사
Amazon Web Services Korea
 
SAP Cloud Platform API Management Technical Brief
SAP Cloud Platform
 
REST-API introduction for developers
Patrick Savalle
 
Introduction to SAP BTP
SureshSuresetti
 
Odata V4 : The New way to REST for Your Applications
Alok Chhabria
 
Data Center Migration Essentials - Adam Saint-Prix Tim Wong
Atlassian
 
Fiori Presentation
Steven Zeraua
 

Similar to Modern REST APIs for Enterprise Databases - OData (20)

PPTX
Data APIs Don't Discriminate [API World Stage Talk]
Sumit Sarkar
 
PPTX
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Nishanth Kadiyala
 
PDF
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
Matt Stubbs
 
PDF
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATE
Matt Stubbs
 
PDF
APIs Design - Creation - Management.pdf
WilliamELKAIMPhd
 
PPTX
APIs in Enterprise
Victor Olex
 
PDF
Geekier Analytics for SaaS data
Progress
 
PPTX
Building a Hybrid Data Pipeline for Salesforce and Hadoop
Sumit Sarkar
 
PDF
Informix REST API Tutorial
Brian Hughes
 
PPTX
API ARU-ARU
CData Software Japan
 
PPTX
Welcome to the Era of Open Analytics
Sumit Sarkar
 
PDF
A Modern API Toolbox
Eric Horesnyi
 
PDF
Data APIs as a Foundation for Systems of Engagement
Victor Olex
 
PPTX
REST-Enabling Enterprise Data in the Mobile Era
DreamFactory
 
PPTX
OData Hackathon Challenge
Sumit Sarkar
 
PDF
What Are The Most Common Types Of API Integrations In 2025.docx.pdf
Custom Web Development Services in usa
 
PDF
Api enablement-mainframe
Maran Gothandaraman
 
PPTX
Digitize Enterprise Assets for Mobility
Sumit Sarkar
 
PDF
Enterprise REST
Ganesh Prasad
 
PPTX
REST: So What's It All About? (SAP TechEd 2011, MOB107)
Sascha Wenninger
 
Data APIs Don't Discriminate [API World Stage Talk]
Sumit Sarkar
 
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Nishanth Kadiyala
 
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
Matt Stubbs
 
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATE
Matt Stubbs
 
APIs Design - Creation - Management.pdf
WilliamELKAIMPhd
 
APIs in Enterprise
Victor Olex
 
Geekier Analytics for SaaS data
Progress
 
Building a Hybrid Data Pipeline for Salesforce and Hadoop
Sumit Sarkar
 
Informix REST API Tutorial
Brian Hughes
 
Welcome to the Era of Open Analytics
Sumit Sarkar
 
A Modern API Toolbox
Eric Horesnyi
 
Data APIs as a Foundation for Systems of Engagement
Victor Olex
 
REST-Enabling Enterprise Data in the Mobile Era
DreamFactory
 
OData Hackathon Challenge
Sumit Sarkar
 
What Are The Most Common Types Of API Integrations In 2025.docx.pdf
Custom Web Development Services in usa
 
Api enablement-mainframe
Maran Gothandaraman
 
Digitize Enterprise Assets for Mobility
Sumit Sarkar
 
Enterprise REST
Ganesh Prasad
 
REST: So What's It All About? (SAP TechEd 2011, MOB107)
Sascha Wenninger
 
Ad

Recently uploaded (20)

PPTX
apidays Helsinki & North 2025 - API access control strategies beyond JWT bear...
apidays
 
PDF
apidays Helsinki & North 2025 - APIs in the healthcare sector: hospitals inte...
apidays
 
PPT
Growth of Public Expendituuure_55423.ppt
NavyaDeora
 
PPTX
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
PDF
OPPOTUS - Malaysias on Malaysia 1Q2025.pdf
Oppotus
 
PDF
apidays Helsinki & North 2025 - Monetizing AI APIs: The New API Economy, Alla...
apidays
 
PPTX
Climate Action.pptx action plan for climate
justfortalabat
 
PPTX
apidays Helsinki & North 2025 - Agentic AI: A Friend or Foe?, Merja Kajava (A...
apidays
 
PPTX
ER_Model_with_Diagrams_Presentation.pptx
dharaadhvaryu1992
 
PDF
AUDITABILITY & COMPLIANCE OF AI SYSTEMS IN HEALTHCARE
GAHI Youssef
 
PPTX
apidays Singapore 2025 - From Data to Insights: Building AI-Powered Data APIs...
apidays
 
PDF
Web Scraping with Google Gemini 2.0 .pdf
Tamanna
 
PDF
OOPs with Java_unit2.pdf. sarthak bookkk
Sarthak964187
 
PPTX
apidays Munich 2025 - Building Telco-Aware Apps with Open Gateway APIs, Subhr...
apidays
 
PPTX
recruitment Presentation.pptxhdhshhshshhehh
devraj40467
 
PPTX
AI Presentation Tool Pitch Deck Presentation.pptx
ShyamPanthavoor1
 
PPTX
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
PPTX
apidays Helsinki & North 2025 - Vero APIs - Experiences of API development in...
apidays
 
PPTX
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
PPTX
apidays Singapore 2025 - Designing for Change, Julie Schiller (Google)
apidays
 
apidays Helsinki & North 2025 - API access control strategies beyond JWT bear...
apidays
 
apidays Helsinki & North 2025 - APIs in the healthcare sector: hospitals inte...
apidays
 
Growth of Public Expendituuure_55423.ppt
NavyaDeora
 
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
OPPOTUS - Malaysias on Malaysia 1Q2025.pdf
Oppotus
 
apidays Helsinki & North 2025 - Monetizing AI APIs: The New API Economy, Alla...
apidays
 
Climate Action.pptx action plan for climate
justfortalabat
 
apidays Helsinki & North 2025 - Agentic AI: A Friend or Foe?, Merja Kajava (A...
apidays
 
ER_Model_with_Diagrams_Presentation.pptx
dharaadhvaryu1992
 
AUDITABILITY & COMPLIANCE OF AI SYSTEMS IN HEALTHCARE
GAHI Youssef
 
apidays Singapore 2025 - From Data to Insights: Building AI-Powered Data APIs...
apidays
 
Web Scraping with Google Gemini 2.0 .pdf
Tamanna
 
OOPs with Java_unit2.pdf. sarthak bookkk
Sarthak964187
 
apidays Munich 2025 - Building Telco-Aware Apps with Open Gateway APIs, Subhr...
apidays
 
recruitment Presentation.pptxhdhshhshshhehh
devraj40467
 
AI Presentation Tool Pitch Deck Presentation.pptx
ShyamPanthavoor1
 
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
apidays Helsinki & North 2025 - Vero APIs - Experiences of API development in...
apidays
 
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
apidays Singapore 2025 - Designing for Change, Julie Schiller (Google)
apidays
 
Ad

Modern REST APIs for Enterprise Databases - OData

  • 1. OData: What’s New with REST APIs for Your Database Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress
  • 2. 2© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Audio Bridge Options & Question Submission
  • 3. OData: What’s New with REST APIs for Database Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress
  • 4. 4© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Agenda  Modern Data Access Patterns  Why are companies RESTifying databases?  OData overview • Exposing the Database Using OData • Getting Started with OData • Demo
  • 5. 5© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Modern Data Access Patterns
  • 6. 6© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Data Warehouses – still the workhorse analytical engines Source: https://en.wikipedia.org/wiki/Data_warehouse
  • 7. 7© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Data Access for Data Lakes DataLake {REST} SQL Analytical Mobile / Cloud
  • 8. 8© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Common Data Lake Implementation Technologies Create Differing Requirements for Data Governance Hadoop distributions:  Simplified data ingestion and storage with several processing options  Data lake management ecosystem emerging  Complex deployment and management Database management systems:  Optimal for certain data types and formats  Data processing options expanding beyond SQL  Scaling and cost may be challenges Cloud-based block and object stores:  Simplified data ingestion and storage  Bring your own processing  Nascent management and security ecosystem
  • 9. 9© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
  • 10. 10© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Virtual Data Lake by REST Enabling Sources {REST} {REST} {REST} {REST} {REST}
  • 11. 11© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Goal is to “Connect” data and not “Collect”  REST APIs are accessible over the internet and thus are much more user/coder friendly  REST is stateless and thus can easily be horizontally scaled since there is no session dependency  As you monetize data, APIs offer a secure way to expose your data to users outside your organization  REST APIs are more human-readable and thus more engaging  Decoupling the code from the infrastructure will give the enterprise the flexibility to adopt newer technologies
  • 12. 12© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Why are companies RESTifying databases?
  • 13. 13© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Transition from SOAP to REST
  • 14. 14© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. SOAP vs REST SOAP XML Uses WSDL to define interface Stateful REST JSON, XML, YAML etc. Uses HTTP verbs (Get, Post, Put, Delete) Stateless
  • 15. 15© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. SOAP vs REST Source: Google Trends
  • 16. 16© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. SOAP vs REST Source: Google Trends
  • 17. 17© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Use Cases for REST Enabling Databases
  • 18. 18© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. 1. Expose Enterprise Data to SaaS/Cloud via HTTP Enterprise Data HTTP / HTTPS Enterprise REST APIs
  • 19. 19© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. 2. Modernize Access to Enterprise Data {JSON} Your DB RESTAPIs
  • 20. 20© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. 2. Modernize Access to Enterprise Data {JSON} Your DB RESTAPIs
  • 21. 21© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. 2. Modern Data Access {JSON} Your DB RESTAPIs
  • 22. 22© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. 3. Additional Layer means Additional Control Limit direct access to your DB Throttling can help protect against resource monopolization Decoupling code from the database makes future transitions easier
  • 23. 23© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Poll Question 1 Which of the following use cases are true for your organization?  Your database needs to support modern languages such as JS, node.js, angular, python, etc.  Sensitive data needs to stay within the firewall (GDPR, etc.)  Enterprise Data needs to be available from new devices  Modern Apps need REST end points for integration  Other
  • 24. 24© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Industry is moving towards REST APIs Cloud-Hosted Databases Google Cloud Azure Database.com IBM Cloudant … On-Premises Databases Oracle REST Data Services Teradata REST API IBM DB2 Rest Services MarkLogic REST API …
  • 25. 25© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Poll Question 2 Which of the following databases are of interest to REST enable?  Oracle  SQL Server  IBM DB2  Postgres  MySQL
  • 26. 26© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Poll Question 2 – Part 2 Which of the following databases are of interest to REST enable?  Amazon Redshift  Hadoop Frameworks  Teradata  OpenEdge  Other
  • 27. 27© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
  • 28. 28© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. But, every database and REST API is different… OData is the Answer
  • 29. 29© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. OData Overview
  • 30. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.30 An open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way What is OData? Progress was the first member to join the OData Technical Committee Started by Microsoft in 2007 OASIS Standard since Feb 2014 Ratified as an ISO standard in Feb 2017
  • 31. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.31 OData is essentially SQL for the web built on top of standard protocols – HTTP, JSON & ATOM – while leveraging the REST architecture style OData is the standard for REST ODATA ODATA- The standard REST API JSON XML Mime HTTP(S)
  • 32. 32© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Broad Adoption for OData
  • 33. 33© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Exposing the Database Using OData
  • 34. 34© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Entity Properties Navigation Properties Entity Properties Navigation Properties OData Data Model Customers Id: 2 Name: Mark Status: active Orders: Customers(1)/Orders Id: 1 Name: Mark Status: active Orders: Customers(1)/Orders Entity Set Entity Properties Navigation Properties Schema Function Parameters Return Value Action Parameters
  • 35. 35© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Mapping Databases to OData Database Construct OData Construct Table Entity Set Row Entity Column Property Stored Procedure Action (or Function) User Defined Function Function Primary Key Entity Key Foreign Key Navigation Property
  • 36. 36© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Mapping SQL to OData HTTP Method OData REST Operation SQL Command POST Create a new entity INSERT GET Retrieve zero or more entities SELECT PUT Update an Entity (replace semantics) UPDATE PATCH Update an Entity (update semantics) UPDATE DELETE Destroy an Entity DELETE GET Invoke a function and get its results CALL / EXEC POST Invoke and action and get its results CALL
  • 37. 37© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Self Describing Service – Metadata Document  Detailed description of the service URL: <service_root>/$metadata Entity Type Complex Type Function Action Type Properties Parameters Property Attributes Parameter Attributes Name,Type, MaxLength, Precision, Scale, Nullable, more Name,Type, MaxLength, Precision, Scale, Nullable, more Navigation Property Return Type (Function) Key (EntityType) Type, Nullable Function Import Action Import  Information equivalent to SQL Tables, Columns, Primary Key, Foreign Key, Procedures, ProcedureColumns, Functions, FunctionColumns metadata calls
  • 38. 38© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. URL Query Conventions https://myodataserver/northwind ________________________/ | Service Root https://myodataserver/northwind/Customers('ALFKI')/Orders?$expand=OrderDetails _________________________/_____________________/_________________/ | | | Service Root Resource Path Query Options
  • 39. 39© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. ODATA Query Options System Query Option Description SQL Construct $filter Restrict the entities returned when querying an entity set to those matching the filter criteria WHERE clause $select Specify the properties to be included in the returned entities SELECT list $orderby Specify the sort order of the returned entities ORDER BY clause $expand Include related entities and complex types nested in the returned entities INNER JOIN $top and $skip Enable client to page through results TOP/SKIP or LIMIT/OFFSET $count Include the count of the number of entities returned in the result COUNT(*) $search Restrict the entities returned when querying an entity set to those matching the search expression Full Text Search $format Specify the desired data format for the response N/A
  • 40. 40© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Batch Insert and Transactions URL: <service_root>/$batch  Execute multiple operations in a single OData request.  Operations in a Change Set are executed atomically GET Customers Batch Request POST Orders POST OrderItems POST OrderItems POST OrderItems Change Set
  • 41. 41© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Getting Started with OData
  • 42. 42© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. OData Libraries - http://www.odata.org/libraries/ .NET Java JavaScript Other RESTier Apache Olingo Node-odata ODataCpp (C++) ODataLib SDL OData Frameworks DevExtreme Pyslet Python Package Edmlib Odata4j o.js ODataStore for CoreData (iOS) ASP.NET Web API OData Jello Framework OpenUI5 OData4ObjC (iOS) AdaptiveLINQ ODataJClient JayData OData Client Library for Tcl/Tk Microsoft.Spatial Breeze.js
  • 43. 43© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Or use Hybrid Data Pipeline to create OData REST API from your enterprise databases Why Hybrid Data Pipeline? • OData from any data source • No Coding • No version control needed • Patented on-premises gateway technology
  • 44. 44© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Demo
  • 45. 45© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Resources Understanding OData in 6 steps: http://www.odata.org/getting- started/understand-odata-in-6-steps/  Getting Started Tutorial on OData.org: http://www.odata.org/getting- started/basic-tutorial/  Getting Started Tutorial with OData for your enterprise databases: https://www.progress.com/tutorials/odata/rest-api-for-sql-server-oracle-or- postgres-via-odata  REST API Debate across OData, GraphQL, ORDS: https://dzone.com/articles/rest-api-industry-debate-odata-vs-graphql-vs-ords  FAQs we hear on OData: https://www.progress.com/blogs/odata-faqs-why- should-rest-api-developers-use-odata  [Webinar] OData external data strategies for SaaS vendors with guests from Microsft and Oracle: http://forms.progress.com/wbr-odata-integration-for-saas  OData examples across marketing APIs: https://www.progress.com/blogs/getting-started-with-rest-apis-across- marketo-eloqua-and-odata
  • 47. 47© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Appendix
  • 48. 48© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Resource Customers http://myodataserver/northwind/Customers $select=x,y http://myodataserver/northwind/Customers?$select=CompanyName,CustomerID,Country $filter http://myodataserver/northwind/Customers?$filter=Country eq 'Germany' $orderby http://myodataserver/northwind/Customers?$orderby=Country,City desc $expand http://myodataserver/northwind/Customers?$expand=Orders $top and $skip http://myodataserver/northwind/Customers?$orderby=Country,City desc&$top=5&$skip=5 $count http://myodataserver/northwind/Customers?$count=true Query Examples Service Root: http://myodataserver/northwind
  • 49. 49© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.© 2017 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Putting it altogether http:// myodataserver/northwind /Customers? $expand=Orders($select=OrderID,EmployeeID,OrderDate;$filter=EmployeeID eq 4) &$filter=Country eq 'Germany' and (City eq 'Berlin' or contains(City,'Frankfurt’)) &$select=CustomerID,CompanyName,ContactName,City,Country,Phone &$orderby=CompanyName desc &$count=true