SlideShare a Scribd company logo
Industry REST API
debate: OData vs
GraphQL vs ORDS
Progress DataDirect Partner Summit
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.2
Agenda
 Introduction to standard APIs to query data
 Contrast the APIs for adoption in analytics and data management tools
 Examples
 What you should with this info?
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.3
Introduction to standard APIs to
query data
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.4
REST is great, BUT from an analytics and data management perspective...
 It’s a style – not a standard
 Metadata support?
 Limited querying capabilities
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.5
Introduction to standard APIs to query data
OData GraphQL ORDS
An open protocol to allow the
creation and consumption of
queryable and interoperable
RESTful APIs in a simple and
standard way.
• Started by Microsoft in 2007
• Ratified as an OASIS standard
on February, 2014
• Approved for release by
ISO/IEC on Feburary, 2017
Data query language for APIs
developed internally at Facebook in
2012 before public release in 2015.
GraphQL provides a complete and
understandable description of the
data in your API, gives clients the
power to ask for exactly what they
need and nothing more, makes it
easier to evolve APIs over time, and
enables powerful developer tools.
Oracle REST Data Services
(ORDS) is a powerful tool that
enables developers with SQL and
other database skills to build
enterprise class, data access APIs
to Oracle Databases that today’s
modern, state-of-the-art application
developers want to use, and indeed
increasingly demand to use, to build
applications.
60 Groups at Oracle including
Oracle RDBMS, TimesTen, and
NoSQL
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.6
Contrast the APIs for adoption in
analytics and data management
tools
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.7
Contrast the APIs for adoption in analytics and data management tools
OData GraphQL ORDS
Standard query
capabilities
Yes Yes Yes
Writes Yes Yes Yes
Surfacing metadata Yes Yes Yes
Maturity of specification Yes No Yes
API versioning /
maintenance
Yes No Yes
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.8
Contrast the APIs for adoption in analytics and data management tools
OData GraphQL ORDS
Delta Response (CDC) Yes No No
Transactions Yes, change sets No Yes, SQL pass through
Open Source
Community
Yes Yes No
Client libraries Yes Limited No
Extensible Yes Yes No
Bulk data Yes (Batch Read/Write) No Yes (Load)
Standard Query Capabilities
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.10
Standard query capabilities
Operations OData GraphQL ORDS
Filtering Yes No Yes
Ordering Yes No Yes
Aggregation No No No
Joining Yes Yes No
Paging Yes No Yes
Writes
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.12
Writes
OData GraphQL ORDS
HTTP Operations
Writes happen via HTTP POST,
PATCH, and DELETE
operations. Data to be
inserted/changed is included in
the payload.
Mutations
A mutation is an operation that
“mutates” the underlying data
system. Mutations are how you
create, read, update, or delete
(CRUD) data.
Handlers
ORDS will auto-generate
handlers to perform basic CRUD
operations on single tables or
views. These include query all
rows, query individual row, insert
single row, bulk insert, update,
and return metadata.
Surfacing Metadata
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.14
Surfacing Metadata
Operations OData GraphQL ORDS
Schema Metadata Yes Yes Yes
Object Metadata Yes Yes Yes
Object
Details
Data Types Yes Yes Yes
Scale/Precision Yes No No
Read/Write No No No
Unique No No No
Primary Keys Yes No Yes
Description Yes Yes Yes
Nullability Yes Yes No
API Versioning and Maintenance
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.16
API versioning and maintenance
 GraphQL has positioned itself to take care of the headaches associated with API
versioning and maintenance
 The biggest problem leading to this headache with Rest APIs is that all of the fields are
returned when you query an endpoint
• API developers have no window into whether or not clients are relying on information in
specific fields
• Client developers must process all of the fields returned even if they do not need the
information
 Solved this problem by forcing clients to specify exactly which fields they require
• API developers can proactively reach out to known consumers of fields to migrate off of
deprecated fields
• Response includes information about which fields are deprecated
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.17
API versioning and maintenance
 OData provides similar functionality
• Does support providing select list to limit the number of fields returned to those needed by
application
– This reduces response size and processing in application
• Does not provide a mechanism to indicate that fields are deprecated
 OData is more flexible in that queries can be easily written to return all fields
 OData is adding schema versioning to the specification to deal with this problem
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.18
Examples
Metadata
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.20
OData
 serviceRoot/$metadata
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.21
GraphQL
 Obtain metadata by
writing GraphQL
queries against
predefined types
• __schema
• __type
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.22
ORDS
 HTTP GET
https://server:port/ords/crm/opportunities/{id}
Queries
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.24
OData – return all accounts
 HTTP GET serviceRoot/ACCOUNTS
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.25
GraphQL - return all accounts
 HTTP POST
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.26
ORDS - return all accounts
 HTTP GET https://server:port/ords/ords-test/metadata-catalog/account
Queries | Inner Join
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.28
OData – return all opportunities for an account
 HTTP GET <OData service root
url>/ACCOUNTS?$expand=OPPORTUNITIES($select=NAME,AMOUNT)
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.29
GraphQL - return all opportunities for an account
 HTTP POST
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.30
ORDS – return all opportunities for an account
 Must define handler to generate response in PL/SQL
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.31
ORDS – return all opportunities for an account
 HTTP GET https://server:port/ords/ords-test/demo/test
Queries | Order By
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.33
OData - orderBy
 HTTP GET serviceRoot/OPPORTUNITIES?$orderBy=name
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.34
GraphQL - orderBy
 HTTP POST
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.35
ORDS - orderBy
 HTTP GET https://server:port/ords/crm/demo/opportunity/q="$orderby": {“name":
“ASC"}
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.36
What you should do with this info?
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.37
Our recommendations for analytics and data management
OData GraphQL ORDS
BUY
Generally recommend supporting
OData as a consumer and in an
open analytics strategy for
producers.
Bulk data is not yet supported, but
there are data management tools
adopting it today for sources that
support OData exclusively.
HOLD
GraphQL remains very new and it
certainly addresses some of the
challenges in working across
different REST APIs.
HOLD
ORDS appears to be database
centric today and not yet widely
adopted by the vast portfolio of
SaaS applications.
We will continue to serve on the
OData technical committee to drive
the specification forward for our
partners.
We will continue to monitor
adoption and research how we can
leverage the popular concepts to
deliver improved API connectors.
We will continue to monitor adoption
and continue to research where
support for it can improve the
experience for our partners.
REST API debate: OData vs GraphQL vs ORDS

More Related Content

What's hot

Apache kafka
Apache kafkaApache kafka
Apache kafka
Viswanath J
 
Apache Kafka - Patterns anti-patterns
Apache Kafka - Patterns anti-patternsApache Kafka - Patterns anti-patterns
Apache Kafka - Patterns anti-patterns
Florent Ramiere
 
Scaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ss
Anil Nair
 
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeApache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Slim Baltagi
 
Deep Dive into Apache Kafka
Deep Dive into Apache KafkaDeep Dive into Apache Kafka
Deep Dive into Apache Kafka
confluent
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
Chhavi Parasher
 
Simplifying Real-Time Architectures for IoT with Apache Kudu
Simplifying Real-Time Architectures for IoT with Apache KuduSimplifying Real-Time Architectures for IoT with Apache Kudu
Simplifying Real-Time Architectures for IoT with Apache Kudu
Cloudera, Inc.
 
Loading Data into Amazon Redshift
Loading Data into Amazon RedshiftLoading Data into Amazon Redshift
Loading Data into Amazon Redshift
Amazon Web Services
 
Apache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developers
confluent
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
Apcera
 
Can Apache Kafka Replace a Database?
Can Apache Kafka Replace a Database?Can Apache Kafka Replace a Database?
Can Apache Kafka Replace a Database?
Kai Wähner
 
Kafka at Peak Performance
Kafka at Peak PerformanceKafka at Peak Performance
Kafka at Peak Performance
Todd Palino
 
Disaster Recovery and High Availability with Kafka, SRM and MM2
Disaster Recovery and High Availability with Kafka, SRM and MM2Disaster Recovery and High Availability with Kafka, SRM and MM2
Disaster Recovery and High Availability with Kafka, SRM and MM2
Abdelkrim Hadjidj
 
Kafka internals
Kafka internalsKafka internals
Kafka internals
David Groozman
 
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
HostedbyConfluent
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
Jiangjie Qin
 
Managing enterprise users in Hadoop ecosystem
Managing enterprise users in Hadoop ecosystemManaging enterprise users in Hadoop ecosystem
Managing enterprise users in Hadoop ecosystem
DataWorks Summit
 
An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache Kafka
Amir Sedighi
 
Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka Streams
Guozhang Wang
 

What's hot (20)

Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Apache Kafka - Patterns anti-patterns
Apache Kafka - Patterns anti-patternsApache Kafka - Patterns anti-patterns
Apache Kafka - Patterns anti-patterns
 
Scaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ss
 
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeApache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
 
Deep Dive into Apache Kafka
Deep Dive into Apache KafkaDeep Dive into Apache Kafka
Deep Dive into Apache Kafka
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
 
Simplifying Real-Time Architectures for IoT with Apache Kudu
Simplifying Real-Time Architectures for IoT with Apache KuduSimplifying Real-Time Architectures for IoT with Apache Kudu
Simplifying Real-Time Architectures for IoT with Apache Kudu
 
Loading Data into Amazon Redshift
Loading Data into Amazon RedshiftLoading Data into Amazon Redshift
Loading Data into Amazon Redshift
 
Apache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developers
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
 
Can Apache Kafka Replace a Database?
Can Apache Kafka Replace a Database?Can Apache Kafka Replace a Database?
Can Apache Kafka Replace a Database?
 
Kafka at Peak Performance
Kafka at Peak PerformanceKafka at Peak Performance
Kafka at Peak Performance
 
Disaster Recovery and High Availability with Kafka, SRM and MM2
Disaster Recovery and High Availability with Kafka, SRM and MM2Disaster Recovery and High Availability with Kafka, SRM and MM2
Disaster Recovery and High Availability with Kafka, SRM and MM2
 
Kafka internals
Kafka internalsKafka internals
Kafka internals
 
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
Real-time Analytics with Upsert Using Apache Kafka and Apache Pinot | Yupeng ...
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 
Managing enterprise users in Hadoop ecosystem
Managing enterprise users in Hadoop ecosystemManaging enterprise users in Hadoop ecosystem
Managing enterprise users in Hadoop ecosystem
 
An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache Kafka
 
Kafka basics
Kafka basicsKafka basics
Kafka basics
 
Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka Streams
 

Similar to REST API debate: OData vs GraphQL vs ORDS

OData - The Universal REST API
OData - The Universal REST APIOData - The Universal REST API
OData - The Universal REST API
Nishanth Kadiyala
 
Geekier Analytics for SaaS data
Geekier Analytics for SaaS dataGeekier Analytics for SaaS data
Geekier Analytics for SaaS data
Progress
 
Welcome to the Era of Open Analytics
Welcome to the Era of Open AnalyticsWelcome to the Era of Open Analytics
Welcome to the Era of Open Analytics
Sumit Sarkar
 
Building a Hybrid Data Pipeline for Salesforce and Hadoop
Building a Hybrid Data Pipeline for Salesforce and HadoopBuilding a Hybrid Data Pipeline for Salesforce and Hadoop
Building a Hybrid Data Pipeline for Salesforce and Hadoop
Sumit Sarkar
 
From Data To Insights
From Data To InsightsFrom Data To Insights
From Data To Insights
Abhishek Kant
 
OData Hackathon Challenge
OData Hackathon ChallengeOData Hackathon Challenge
OData Hackathon Challenge
Sumit Sarkar
 
Journey to Marketing Data Lake [BRK1098]
Journey to Marketing Data Lake [BRK1098]Journey to Marketing Data Lake [BRK1098]
Journey to Marketing Data Lake [BRK1098]
Sumit Sarkar
 
High performing Salesforce Data Connectors
High performing Salesforce Data ConnectorsHigh performing Salesforce Data Connectors
High performing Salesforce Data Connectors
Nishanth Kadiyala
 
Journey to SAS Analytics Grid with SAS, R, Python
Journey to SAS Analytics Grid with SAS, R, PythonJourney to SAS Analytics Grid with SAS, R, Python
Journey to SAS Analytics Grid with SAS, R, Python
Sumit Sarkar
 
Key Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to PostgresKey Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to Postgres
EDB
 
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
Matt Stubbs
 
Modern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - ODataModern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - OData
Nishanth Kadiyala
 
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
SAP Cloud Platform
 
OData External Data Integration Strategies for SaaS
OData External Data Integration Strategies for SaaSOData External Data Integration Strategies for SaaS
OData External Data Integration Strategies for SaaS
Sumit Sarkar
 
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATE
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATEBig Data LDN 2018: DATA APIS DON’T DISCRIMINATE
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATE
Matt Stubbs
 
Dev207 berlin
Dev207 berlinDev207 berlin
Dev207 berlin
Wolfgang Weiss
 
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Nishanth Kadiyala
 
Building a marketing data lake
Building a marketing data lakeBuilding a marketing data lake
Building a marketing data lake
Sumit Sarkar
 
Data APIs Don't Discriminate [API World Stage Talk]
Data APIs Don't Discriminate [API World Stage Talk]Data APIs Don't Discriminate [API World Stage Talk]
Data APIs Don't Discriminate [API World Stage Talk]
Sumit Sarkar
 
SAP and Red Hat JBoss Partner Webinar
SAP and Red Hat JBoss Partner WebinarSAP and Red Hat JBoss Partner Webinar
SAP and Red Hat JBoss Partner Webinar
SAP PartnerEdge program for Application Development
 

Similar to REST API debate: OData vs GraphQL vs ORDS (20)

OData - The Universal REST API
OData - The Universal REST APIOData - The Universal REST API
OData - The Universal REST API
 
Geekier Analytics for SaaS data
Geekier Analytics for SaaS dataGeekier Analytics for SaaS data
Geekier Analytics for SaaS data
 
Welcome to the Era of Open Analytics
Welcome to the Era of Open AnalyticsWelcome to the Era of Open Analytics
Welcome to the Era of Open Analytics
 
Building a Hybrid Data Pipeline for Salesforce and Hadoop
Building a Hybrid Data Pipeline for Salesforce and HadoopBuilding a Hybrid Data Pipeline for Salesforce and Hadoop
Building a Hybrid Data Pipeline for Salesforce and Hadoop
 
From Data To Insights
From Data To InsightsFrom Data To Insights
From Data To Insights
 
OData Hackathon Challenge
OData Hackathon ChallengeOData Hackathon Challenge
OData Hackathon Challenge
 
Journey to Marketing Data Lake [BRK1098]
Journey to Marketing Data Lake [BRK1098]Journey to Marketing Data Lake [BRK1098]
Journey to Marketing Data Lake [BRK1098]
 
High performing Salesforce Data Connectors
High performing Salesforce Data ConnectorsHigh performing Salesforce Data Connectors
High performing Salesforce Data Connectors
 
Journey to SAS Analytics Grid with SAS, R, Python
Journey to SAS Analytics Grid with SAS, R, PythonJourney to SAS Analytics Grid with SAS, R, Python
Journey to SAS Analytics Grid with SAS, R, Python
 
Key Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to PostgresKey Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to Postgres
 
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
Big Data LDN 2018: 2018 DATA TRENDS: RESULTS FROM FIFTH ANNUAL DATA AND ANALY...
 
Modern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - ODataModern REST APIs for Enterprise Databases - OData
Modern REST APIs for Enterprise Databases - OData
 
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
 
OData External Data Integration Strategies for SaaS
OData External Data Integration Strategies for SaaSOData External Data Integration Strategies for SaaS
OData External Data Integration Strategies for SaaS
 
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATE
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATEBig Data LDN 2018: DATA APIS DON’T DISCRIMINATE
Big Data LDN 2018: DATA APIS DON’T DISCRIMINATE
 
Dev207 berlin
Dev207 berlinDev207 berlin
Dev207 berlin
 
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017Deliver Secure SQL Access for Enterprise APIs - August 29 2017
Deliver Secure SQL Access for Enterprise APIs - August 29 2017
 
Building a marketing data lake
Building a marketing data lakeBuilding a marketing data lake
Building a marketing data lake
 
Data APIs Don't Discriminate [API World Stage Talk]
Data APIs Don't Discriminate [API World Stage Talk]Data APIs Don't Discriminate [API World Stage Talk]
Data APIs Don't Discriminate [API World Stage Talk]
 
SAP and Red Hat JBoss Partner Webinar
SAP and Red Hat JBoss Partner WebinarSAP and Red Hat JBoss Partner Webinar
SAP and Red Hat JBoss Partner Webinar
 

More from Sumit Sarkar

What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise apps
Sumit Sarkar
 
Digitize Enterprise Assets for Mobility
Digitize Enterprise Assets for MobilityDigitize Enterprise Assets for Mobility
Digitize Enterprise Assets for Mobility
Sumit Sarkar
 
SQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce AnalyticsSQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce Analytics
Sumit Sarkar
 
Salesforce Connect External Object Reports
Salesforce Connect External Object ReportsSalesforce Connect External Object Reports
Salesforce Connect External Object Reports
Sumit Sarkar
 
Hybrid Data Pipeline for SQL and REST
Hybrid Data Pipeline for SQL and RESTHybrid Data Pipeline for SQL and REST
Hybrid Data Pipeline for SQL and REST
Sumit Sarkar
 
Firewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data accessFirewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data access
Sumit Sarkar
 
Salesforce External Objects for Big Data
Salesforce External Objects for Big DataSalesforce External Objects for Big Data
Salesforce External Objects for Big Data
Sumit Sarkar
 
OData and the future of business objects universes
OData and the future of business objects universesOData and the future of business objects universes
OData and the future of business objects universes
Sumit Sarkar
 
Webinar on MongoDB BI Connectors
Webinar on MongoDB BI ConnectorsWebinar on MongoDB BI Connectors
Webinar on MongoDB BI Connectors
Sumit Sarkar
 
Lightning Connect: Lessons Learned
Lightning Connect: Lessons LearnedLightning Connect: Lessons Learned
Lightning Connect: Lessons Learned
Sumit Sarkar
 
Ibis 2015 final template
Ibis 2015 final templateIbis 2015 final template
Ibis 2015 final template
Sumit Sarkar
 

More from Sumit Sarkar (11)

What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise apps
 
Digitize Enterprise Assets for Mobility
Digitize Enterprise Assets for MobilityDigitize Enterprise Assets for Mobility
Digitize Enterprise Assets for Mobility
 
SQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce AnalyticsSQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce Analytics
 
Salesforce Connect External Object Reports
Salesforce Connect External Object ReportsSalesforce Connect External Object Reports
Salesforce Connect External Object Reports
 
Hybrid Data Pipeline for SQL and REST
Hybrid Data Pipeline for SQL and RESTHybrid Data Pipeline for SQL and REST
Hybrid Data Pipeline for SQL and REST
 
Firewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data accessFirewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data access
 
Salesforce External Objects for Big Data
Salesforce External Objects for Big DataSalesforce External Objects for Big Data
Salesforce External Objects for Big Data
 
OData and the future of business objects universes
OData and the future of business objects universesOData and the future of business objects universes
OData and the future of business objects universes
 
Webinar on MongoDB BI Connectors
Webinar on MongoDB BI ConnectorsWebinar on MongoDB BI Connectors
Webinar on MongoDB BI Connectors
 
Lightning Connect: Lessons Learned
Lightning Connect: Lessons LearnedLightning Connect: Lessons Learned
Lightning Connect: Lessons Learned
 
Ibis 2015 final template
Ibis 2015 final templateIbis 2015 final template
Ibis 2015 final template
 

Recently uploaded

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

REST API debate: OData vs GraphQL vs ORDS

  • 1. Industry REST API debate: OData vs GraphQL vs ORDS Progress DataDirect Partner Summit
  • 2. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.2 Agenda  Introduction to standard APIs to query data  Contrast the APIs for adoption in analytics and data management tools  Examples  What you should with this info?
  • 3. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.3 Introduction to standard APIs to query data
  • 4. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.4 REST is great, BUT from an analytics and data management perspective...  It’s a style – not a standard  Metadata support?  Limited querying capabilities
  • 5. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.5 Introduction to standard APIs to query data OData GraphQL ORDS An open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way. • Started by Microsoft in 2007 • Ratified as an OASIS standard on February, 2014 • Approved for release by ISO/IEC on Feburary, 2017 Data query language for APIs developed internally at Facebook in 2012 before public release in 2015. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools. Oracle REST Data Services (ORDS) is a powerful tool that enables developers with SQL and other database skills to build enterprise class, data access APIs to Oracle Databases that today’s modern, state-of-the-art application developers want to use, and indeed increasingly demand to use, to build applications. 60 Groups at Oracle including Oracle RDBMS, TimesTen, and NoSQL
  • 6. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.6 Contrast the APIs for adoption in analytics and data management tools
  • 7. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.7 Contrast the APIs for adoption in analytics and data management tools OData GraphQL ORDS Standard query capabilities Yes Yes Yes Writes Yes Yes Yes Surfacing metadata Yes Yes Yes Maturity of specification Yes No Yes API versioning / maintenance Yes No Yes
  • 8. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.8 Contrast the APIs for adoption in analytics and data management tools OData GraphQL ORDS Delta Response (CDC) Yes No No Transactions Yes, change sets No Yes, SQL pass through Open Source Community Yes Yes No Client libraries Yes Limited No Extensible Yes Yes No Bulk data Yes (Batch Read/Write) No Yes (Load)
  • 10. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.10 Standard query capabilities Operations OData GraphQL ORDS Filtering Yes No Yes Ordering Yes No Yes Aggregation No No No Joining Yes Yes No Paging Yes No Yes
  • 12. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.12 Writes OData GraphQL ORDS HTTP Operations Writes happen via HTTP POST, PATCH, and DELETE operations. Data to be inserted/changed is included in the payload. Mutations A mutation is an operation that “mutates” the underlying data system. Mutations are how you create, read, update, or delete (CRUD) data. Handlers ORDS will auto-generate handlers to perform basic CRUD operations on single tables or views. These include query all rows, query individual row, insert single row, bulk insert, update, and return metadata.
  • 14. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.14 Surfacing Metadata Operations OData GraphQL ORDS Schema Metadata Yes Yes Yes Object Metadata Yes Yes Yes Object Details Data Types Yes Yes Yes Scale/Precision Yes No No Read/Write No No No Unique No No No Primary Keys Yes No Yes Description Yes Yes Yes Nullability Yes Yes No
  • 15. API Versioning and Maintenance
  • 16. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.16 API versioning and maintenance  GraphQL has positioned itself to take care of the headaches associated with API versioning and maintenance  The biggest problem leading to this headache with Rest APIs is that all of the fields are returned when you query an endpoint • API developers have no window into whether or not clients are relying on information in specific fields • Client developers must process all of the fields returned even if they do not need the information  Solved this problem by forcing clients to specify exactly which fields they require • API developers can proactively reach out to known consumers of fields to migrate off of deprecated fields • Response includes information about which fields are deprecated
  • 17. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.17 API versioning and maintenance  OData provides similar functionality • Does support providing select list to limit the number of fields returned to those needed by application – This reduces response size and processing in application • Does not provide a mechanism to indicate that fields are deprecated  OData is more flexible in that queries can be easily written to return all fields  OData is adding schema versioning to the specification to deal with this problem
  • 18. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.18 Examples
  • 20. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.20 OData  serviceRoot/$metadata
  • 21. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.21 GraphQL  Obtain metadata by writing GraphQL queries against predefined types • __schema • __type
  • 22. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.22 ORDS  HTTP GET https://server:port/ords/crm/opportunities/{id}
  • 24. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.24 OData – return all accounts  HTTP GET serviceRoot/ACCOUNTS
  • 25. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.25 GraphQL - return all accounts  HTTP POST
  • 26. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.26 ORDS - return all accounts  HTTP GET https://server:port/ords/ords-test/metadata-catalog/account
  • 28. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.28 OData – return all opportunities for an account  HTTP GET <OData service root url>/ACCOUNTS?$expand=OPPORTUNITIES($select=NAME,AMOUNT)
  • 29. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.29 GraphQL - return all opportunities for an account  HTTP POST
  • 30. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.30 ORDS – return all opportunities for an account  Must define handler to generate response in PL/SQL
  • 31. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.31 ORDS – return all opportunities for an account  HTTP GET https://server:port/ords/ords-test/demo/test
  • 33. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.33 OData - orderBy  HTTP GET serviceRoot/OPPORTUNITIES?$orderBy=name
  • 34. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.34 GraphQL - orderBy  HTTP POST
  • 35. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.35 ORDS - orderBy  HTTP GET https://server:port/ords/crm/demo/opportunity/q="$orderby": {“name": “ASC"}
  • 36. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.36 What you should do with this info?
  • 37. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.37 Our recommendations for analytics and data management OData GraphQL ORDS BUY Generally recommend supporting OData as a consumer and in an open analytics strategy for producers. Bulk data is not yet supported, but there are data management tools adopting it today for sources that support OData exclusively. HOLD GraphQL remains very new and it certainly addresses some of the challenges in working across different REST APIs. HOLD ORDS appears to be database centric today and not yet widely adopted by the vast portfolio of SaaS applications. We will continue to serve on the OData technical committee to drive the specification forward for our partners. We will continue to monitor adoption and research how we can leverage the popular concepts to deliver improved API connectors. We will continue to monitor adoption and continue to research where support for it can improve the experience for our partners.