SlideShare a Scribd company logo
1 of 55
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
ORDSDatabaseRESTAPI
https://oracle.com/rest
Jeff Smith
Senior Principal Product Manager
Jeff.d.smith@oracle.com || @thatjeffsmith
Database Tools, Oracle Corp
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Not Just THAT SQLDev Guy…
• Database Development Tools team
• Product manager/story teller
• Specialized Database tooling since 2001
• I bother help people online as @thatjeffsmith
• Contact me for a free remote presentation for your group/company
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle
REST
Data
Services
3
Formerly Known as the APEX Listener
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Get audience sympathy/laughing early
• I’m gonna need a REST API for all of our Oracle data…
• …first thing Monday
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Your Requirements
• No connections to the DB (directly at least)
• No DB authentication (let the app/web tier handle that)
• Link driven (stateless)
• Plays nice with the rest of the apps
– Standard response/error codes
– JSON
– Well documented
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Employees Table =>
• GET
• PUT
• POST
• DELETE
• DESC
• DOCS
/ords/hr/employees
/ords/hr/employees/
/ords/hr/employees/:id
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
{JSON} or JavaScript Object Notation
• JAY-sun
• Not just for JavaScript
• Skinnier than XML
• Flexible
– Easily adapted to represent
database objects & data
• Link-friendly
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
8
Tabular
Nested
Hyperlink
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
But we never use SQL, only PL/SQL Table APIs!
• No worries!
• We auto-magically handle PL/SQL too
• RPC -> POST via HTTPS /ords/hr/procedureA
• Responses & Results (OUTs/RETURNs/REFCURSORs), in {JSON}
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Why should a DBA or PL/SQL Dev care about REST?
• RESTful web services are a way of providing interoperability between
computer systems on the Internet
• REST often treated as a Religion, BUT…
• …provides a predictable model for delivering services
• We aim for pure REST, but don’t let that pursuit get in the way of
practicality
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
REpresentational State Transfer (REST)
It relies on a stateless, client-server, cacheable communications protocol --
and in virtually all cases, the HTTP(S!) protocol is used.
REST is an architecture style for designing networked applications. The idea
is that, rather than using complex mechanisms such as CORBA, RPC or SOAP
to connect between machines, simple HTTP is used to make calls between
machines. (rest.elkstein.org)
11
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Small uniform set of operations: GET, POST, PUT, DELETE
(CRUD!)
• Small set of uniform status codes URLs & hyperlinks encourage
stateless behavior
• Text based protocol with simple request/response model
REST is Easy
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 1xx Informational responses.
• 2xx Success.
• 3xx Redirection.
• 4xx Client errors.
• 5xx Server errors.
About those Codes
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
• Model resources, not actions:
– GET /ords/hr/employees/ - GOOD
– GET /ords/hr/delete_emp/ - BAD
– DELETE /ords/hr/employees/97 - GOOD
• Uniform operations on all resources:
– GET, POST, PUT, DELETE, OPTIONS, HEAD
• Stateless requests, state transitions communicated via hyper-links.
The Architectural Style of the Web{REST}
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Resource Collection Pattern
• MASTER RESOURCE: called the Collection URI:
https://example.com/ords/hr/employees/
• DETAIL RESOURCE; called the Item URI:
https://example.com/ords/hr/employees/:id
15
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Method Purpose Classification Database Operation
GET Retrieve resource Safe, Idempotent SELECT
PUT Create or replace
resource
Idempotent MERGE, UPDATE
DELETE Delete resource Idempotent DELETE
POST Anything. Normally
create
Unsafe INSERT
The Verbs
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
• Java JEE mid tier application, e.g., WebLogic, Tomcat, Glassfish (deprecated)
– Also supported “Standalone” mode
• For input, maps/binds URI to SQL and PL/SQL
• For output, transforms results to JSON and other formats
Oracle REST Data ServicesHTTP(S) client Oracle Database
SQLMap & BindURI
JSON Transform to JSON SQL Result Set
How do we apply this Architectural Style to a DB?
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
https://host/ords/human/peeps/10
SELECT …
WHERE EMPLOYEE_ID = :id
Oracle DB
1. Browser GET request
2. Proxy connect HR, executes
‘peeps’ HANDLER code
ORDS Runs in WLS, Tomcat, or
as a standalone process
Oracle
REST
Data
Services
Anatomy of a RESTful Service Transaction
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Typical Architecture
• Standard webserver layout
• Implements Java Servlet
• Deploys to WLS, Tomcat, Glassfish
• OR Embedded Jetty (standalone)
WLS, Glassfish,
Tomcat
ORDS
Apache
Static Files
-HTML, CSS, JS
/hr/emp
JSON
Binary
HTML
…
HTTP(s) Results
JDBC
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
And it’s Easy!
I had been looking for a chance to perform a POC, so I proposed I just provide him
with a couple of web services. In under a day I had functioning
web services in place for him to consume. There’s been
refinements to them and new ones developed since then. We are now exploring
where else we could leverage this technology.
- a REAL customer talking about ORDS
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
ORDS – How do I get started???
Use SQL Developer to install & run. Use Hands On Labs to learn.
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Full Command-Line Interface & PL/SQL API
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Enable a Schema
• Services are EXECUTED as the REST enabled schema USER …
• … via ORDS_PUBLIC_USER Proxy Connect
• What your session can see & do = straight forward & predictable
• Secured/Authorization outside the database
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Develop RESTFul Services: PL/SQL, GUI, or even REST
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'ORDS_DEMO',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'autodemo',
p_auto_rest_auth => FALSE);
ORDS.DEFINE_MODULE(
p_module_name => 'SPLAT',
p_base_path => '/splat/',
p_items_per_page => 25,
p_status => 'PUBLISHED',
p_comments => NULL);
ORDS.DEFINE_TEMPLATE(
p_module_name => 'SPLAT',
p_pattern => 'types',
p_priority => 0,
p_etag_type => 'HASH',
p_etag_query => NULL,
p_comments => NULL);
ORDS.DEFINE_HANDLER(
p_module_name => 'SPLAT',
p_pattern => 'types',
p_method => 'GET',
p_source_type => 'json/query',
p_items_per_page => 25,
p_mimes_allowed => '',
p_comments => NULL,
p_source =>
'select * from d_types'
);
COMMIT;
END;
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Code and No/Low Code RESTful Service Options
 No need to know Java
 Database developers (PLSQL & SQL) get started quickly
 PL/SQL API
 GUI/IDE Support (SQL Developer!)
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Manual – You Define Modules/URIs/Handlers/the Code
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Automatic
 Pick the Database objects to PUBLISH
 TABLEs and VIEWs
 GET, POST, PUT, DELETE handlers avail for CRUD
 Stored Procedures, Functions, Packages (PL/SQL)
 POST handler avail for RPC
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Auto enablement of RESTful request
modules – User Interface
Exposes these operations
• Schema level Metadata
• Table Metadata
• Get ( Select )
• Query ( Filtering/Order/ASOF )
• Insert
• Update
• Delete
• Load CSV
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Update a Row
32
METHOD : PUT /:PK
REQUEST BODY : JSON
RESPONSE: 200 OK
• Location (Header)
• JSON (Body)
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Remote Procedure Call over
HTTP(S) via POST
ORDS takes parameters as JSON, executes PL/SQL,
grabs output, sends back down as JSON
OUT INTEGER & SYS_REFCURSOR
{
"total_payroll": 631230,
"peeps_numbers": [
{
"id": 81,
"name": "Dummy4",
"salary": 0,
"hire_date": "2017-06-20T13:29:00Z"
},
{
"id": 65,
"name": "Bart",
"salary": 0,
"hire_date": "2017-06-20T13:29:00Z"
},
{
"id": 79,
…
}
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Execute PL/SQL TABLE API
Execute, REFCURSOR RETURN
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Ok, our boss came back with more details
• Funny pictures on the internet
• Put them in a table
• Show me a list of the funnies
• Let me see them on demand
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Scenario: Our Table
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
The RESTful Service (POST – PL/SQL Block)
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
The POST Call (Postman)
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://localhost:8080/ords/hr/test2/media")
.post(null)
.addHeader("content-type", "image/png")
.addHeader("title", "18.2 tease")
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "86b344ef-2aba-12e2-8788-4c316bc866e3")
.build();
Response response = client.newCall(request).execute();
The POST Call (Java)
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
The POST Call (cURL)
curl -X POST 
http://localhost:8080/ords/hr/test2/media 
-H 'cache-control: no-cache’ 
-H 'content-type: image/png' 
-H 'postman-token: bf2bcb0d-8759-fc70-98ff-c3633b418dcb' 
-H 'title: 18.2 tease'
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
The Response
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
How About API to get all the images?
select title
,content_type
,id "$uri"
from gallery
order by title
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Module URI Templates
/ords/hr/employees
/ords/hr/employees/
/ords/hr/employees/:id
SQL & PLSQL
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
{Swagger}
Requirement: WELL DOCUMENTED
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Quick, Check in to Source Control!
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Mission Accomplished
• Link driven (stateless)
• Plays nice with others
– Standard response/error codes
– JSON
– Well documented
BONUS!
– Supported by Oracle
– No additional cost
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
• Disabled by default
• AUTH by user with sql dev priv or via DB
curl -X POST 
http://localhost:8080/ords/hr/_/sql 
-H 'authorization: Basic SFI6b3JhY2xl’ 
-H 'cache-control: no-cache’ 
-H 'content-type: application/sql’ 
-H 'postman-token: 23a49622-a195-cb76-0606-358f3e371cdd’ 
-d 'SELECT first_name, last_name, department_name
FROM hr.employees, hr.departments
where employees.department_id = departments.department_id'
Execute SQL via POST
New for 17.4 - _/sql/
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ORDS is Flexible - Security
Caveats
• Almost all dev/demo/blog is done with security off & with HTTP
• Always, always, always secure REST services and run with HTTPS
See Scott Spendolini’s slides on Securing your REST APIs
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
First Party Authentication
• Oracle REST Data Services specific solution
• Only available to the author of the API, application must be deployed on
same origin as API
• https://example.com/api & https://example.com/app ✓
• https://api.example.com & https://app.example.com ✗
• User enters credentials in sign-in form, ORDS issues cookie, cookie is only
validated by ORDS if the request is determined to originate from the from
the same origin as the REST Service.
49
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
About OAuth 2.0
• IETF standard for securing access to REST APIs
• Comes in two forms:
• Two Legged - For Business to Business, server to server applications
• Example: Sync HR data between internal applications
• Three Legged - For Business to Consumer, app to end-user applications
• Example: Share subset of HR data with external benefits provider after
employee approves access.
• Third party registers client, issued credentials, uses credentials to
acquire access token, uses access token with request to prove
authorization
50
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
External Authentication
• Comes in many flavors, for example:
• Oracle Access Manager - SSO cookie at Oracle OHS server level
authenticates users stored in Oracle Identity Manager
• ORDS does not perform authentication, just authorization.
• Usually relies on HTTP cookies, need to restrict CORS allowed Origins to
avoid CSRF
51
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Coming Later This Year
• Available for On-Premises and Oracle Cloud DB Services
• Supports 11gR2 and higher
• Supports ‘Classic’ & Multitenant Architectures
• Supports RAC & Exadata
• Optional
REST API for managing your Oracle Database
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
In the year 2018…REST APIs for the Database!
Listener – Start, stop, status
Database Ops
Start, stop, alerts, INIT params, rotate TDE keys
PDB Ops
Start, stop, create, clone, drop, plug, unplug
OS Stats
Memory, cpu, processes
Reporting
Backups, sessions, waits, ASH, AWR, locks, V$LONG_OPS, RTSM
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Clone a PDB, Get a list of Wait Events, Read the Alert Log…
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plus SQL Developer Web
• Optional!
• 11gR2 and higher
• DBA screens
• SQL Worksheet
– Run SQL, scripts, explain plan, autotrace, SQL history, formatter, insight
– Create & Edit TABLE dialogs
• RE Schemas to a Relational Diagram/DD Reports
Cloud First (Live in DBaaS NOW), On-Premises Later this Year
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
SQLDev Web – the Demo
Runs out of ORDS
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Thanks! Questions?
Resources
• Blogs
• Videos
• GitHub Examples
• Articles
– UKOUG Scene Why REST, and What’s in it or Me?
– Oracle Mag AUTO REST & REST Enabled SQL

More Related Content

What's hot

ORDS - Oracle REST Data Services
ORDS - Oracle REST Data ServicesORDS - Oracle REST Data Services
ORDS - Oracle REST Data ServicesJustin Michael Raj
 
Oracle EBS R12.2 - Deployment and System Administration
Oracle EBS R12.2 - Deployment and System AdministrationOracle EBS R12.2 - Deployment and System Administration
Oracle EBS R12.2 - Deployment and System AdministrationMozammel Hoque
 
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...Gabriele Baldassarre
 
Talend Open Studio Introduction - OSSCamp 2014
Talend Open Studio Introduction - OSSCamp 2014Talend Open Studio Introduction - OSSCamp 2014
Talend Open Studio Introduction - OSSCamp 2014OSSCube
 
OpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerOpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerSmartBear
 
MuleSoft Anypoint Platform and Three Tier Architecture
MuleSoft Anypoint  Platform and Three Tier ArchitectureMuleSoft Anypoint  Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier ArchitectureHarish Kumar
 
High Availability & Disaster Recovery on Oracle Cloud Infrastructure
High Availability & Disaster Recovery on Oracle Cloud InfrastructureHigh Availability & Disaster Recovery on Oracle Cloud Infrastructure
High Availability & Disaster Recovery on Oracle Cloud InfrastructureSinanPetrusToma
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to CloudMarcus Vinicius Miguel Pedro
 
The Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIThe Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIJudy Breedlove
 
Présentation Oracle DataBase 11g
Présentation Oracle DataBase 11gPrésentation Oracle DataBase 11g
Présentation Oracle DataBase 11gCynapsys It Hotspot
 
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cMaximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cGlen Hawkins
 
Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?Jeff Smith
 
Oracle Database – Mission Critical
Oracle Database – Mission CriticalOracle Database – Mission Critical
Oracle Database – Mission CriticalMarkus Michalewicz
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesBobby Curtis
 
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]vasuballa
 
An Introduction to Talend Integration Cloud
An Introduction to Talend Integration CloudAn Introduction to Talend Integration Cloud
An Introduction to Talend Integration CloudTalend
 
Databricks Fundamentals
Databricks FundamentalsDatabricks Fundamentals
Databricks FundamentalsDalibor Wijas
 

What's hot (20)

ORDS - Oracle REST Data Services
ORDS - Oracle REST Data ServicesORDS - Oracle REST Data Services
ORDS - Oracle REST Data Services
 
Oracle EBS R12.2 - Deployment and System Administration
Oracle EBS R12.2 - Deployment and System AdministrationOracle EBS R12.2 - Deployment and System Administration
Oracle EBS R12.2 - Deployment and System Administration
 
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
Talend Open Studio Fundamentals #1: Workspaces, Jobs, Metadata and Trips & Tr...
 
Talend Open Studio Introduction - OSSCamp 2014
Talend Open Studio Introduction - OSSCamp 2014Talend Open Studio Introduction - OSSCamp 2014
Talend Open Studio Introduction - OSSCamp 2014
 
Oracle OSB Tutorial 1
Oracle OSB Tutorial 1Oracle OSB Tutorial 1
Oracle OSB Tutorial 1
 
Why Use an Oracle Database?
Why Use an Oracle Database?Why Use an Oracle Database?
Why Use an Oracle Database?
 
OpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerOpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of Swagger
 
MuleSoft Anypoint Platform and Three Tier Architecture
MuleSoft Anypoint  Platform and Three Tier ArchitectureMuleSoft Anypoint  Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier Architecture
 
High Availability & Disaster Recovery on Oracle Cloud Infrastructure
High Availability & Disaster Recovery on Oracle Cloud InfrastructureHigh Availability & Disaster Recovery on Oracle Cloud Infrastructure
High Availability & Disaster Recovery on Oracle Cloud Infrastructure
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud
 
The Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIThe Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & API
 
Présentation Oracle DataBase 11g
Présentation Oracle DataBase 11gPrésentation Oracle DataBase 11g
Présentation Oracle DataBase 11g
 
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cMaximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19c
 
Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?Oracle SQL Developer for SQL Server?
Oracle SQL Developer for SQL Server?
 
Oracle Database – Mission Critical
Oracle Database – Mission CriticalOracle Database – Mission Critical
Oracle Database – Mission Critical
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best Practices
 
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
 
Oracle License Management - Basics
Oracle License Management - BasicsOracle License Management - Basics
Oracle License Management - Basics
 
An Introduction to Talend Integration Cloud
An Introduction to Talend Integration CloudAn Introduction to Talend Integration Cloud
An Introduction to Talend Integration Cloud
 
Databricks Fundamentals
Databricks FundamentalsDatabricks Fundamentals
Databricks Fundamentals
 

Similar to REST Enabling your Oracle Database (2018 Update)

What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018Jeff Smith
 
Oracle database 12c_and_DevOps
Oracle database 12c_and_DevOpsOracle database 12c_and_DevOps
Oracle database 12c_and_DevOpsMaria Colgan
 
Kellyn Pot'Vin-Gorman - Awr and Ash
Kellyn Pot'Vin-Gorman - Awr and AshKellyn Pot'Vin-Gorman - Awr and Ash
Kellyn Pot'Vin-Gorman - Awr and Ashgaougorg
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLAndrew Morgan
 
Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_aioughydchapter
 
Oracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL DeveloperOracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL DeveloperJeff Smith
 
Oracle SQL Developer for the DBA
Oracle SQL Developer for the DBAOracle SQL Developer for the DBA
Oracle SQL Developer for the DBAJeff Smith
 
Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...
Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...
Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...DataWorks Summit
 
Debugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL DeveloperDebugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL DeveloperJeff Smith
 
RESTful Services for your Oracle Autonomous Database
RESTful Services for your Oracle Autonomous DatabaseRESTful Services for your Oracle Autonomous Database
RESTful Services for your Oracle Autonomous DatabaseJeff Smith
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)Ryusuke Kajiyama
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Marco Antonio Maciel
 
SQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle DatabaseSQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle DatabaseJeff Smith
 
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & TricksPennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & TricksJeff Smith
 
Database as a Service, Collaborate 2016
Database as a Service, Collaborate 2016Database as a Service, Collaborate 2016
Database as a Service, Collaborate 2016Kellyn Pot'Vin-Gorman
 
Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!Jeff Smith
 

Similar to REST Enabling your Oracle Database (2018 Update) (20)

AWR and ASH in an EM12c World
AWR and ASH in an EM12c WorldAWR and ASH in an EM12c World
AWR and ASH in an EM12c World
 
AWR and ASH Deep Dive
AWR and ASH Deep DiveAWR and ASH Deep Dive
AWR and ASH Deep Dive
 
What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018
 
Oracle database 12c_and_DevOps
Oracle database 12c_and_DevOpsOracle database 12c_and_DevOps
Oracle database 12c_and_DevOps
 
Kellyn Pot'Vin-Gorman - Awr and Ash
Kellyn Pot'Vin-Gorman - Awr and AshKellyn Pot'Vin-Gorman - Awr and Ash
Kellyn Pot'Vin-Gorman - Awr and Ash
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
 
Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_
 
Oracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL DeveloperOracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL Developer
 
Oracle SQL Developer for the DBA
Oracle SQL Developer for the DBAOracle SQL Developer for the DBA
Oracle SQL Developer for the DBA
 
Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...
Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...
Big Data Management System: Smart SQL Processing Across Hadoop and your Data ...
 
Debugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL DeveloperDebugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL Developer
 
RESTful Services for your Oracle Autonomous Database
RESTful Services for your Oracle Autonomous DatabaseRESTful Services for your Oracle Autonomous Database
RESTful Services for your Oracle Autonomous Database
 
JAX-RS.next
JAX-RS.nextJAX-RS.next
JAX-RS.next
 
UKOUG
UKOUG UKOUG
UKOUG
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
 
SQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle DatabaseSQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle Database
 
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & TricksPennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
 
Database as a Service, Collaborate 2016
Database as a Service, Collaborate 2016Database as a Service, Collaborate 2016
Database as a Service, Collaborate 2016
 
Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!Oracle SQL Developer: You're Doing it Wrong!
Oracle SQL Developer: You're Doing it Wrong!
 

More from Jeff Smith

Oracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionOracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionJeff Smith
 
Oracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data EditionOracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data EditionJeff Smith
 
Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Jeff Smith
 
Oracle SQLcl: Formatting your Query Results
Oracle SQLcl: Formatting your Query ResultsOracle SQLcl: Formatting your Query Results
Oracle SQLcl: Formatting your Query ResultsJeff Smith
 
Oracle Database Management REST API
Oracle Database Management REST APIOracle Database Management REST API
Oracle Database Management REST APIJeff Smith
 
Oracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerOracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerJeff Smith
 
Social Media - Why a Database Person Should Care
Social Media  - Why a Database Person Should CareSocial Media  - Why a Database Person Should Care
Social Media - Why a Database Person Should CareJeff Smith
 
Oracle SQL Developer Reports
Oracle SQL Developer ReportsOracle SQL Developer Reports
Oracle SQL Developer ReportsJeff Smith
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeJeff Smith
 
PL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperPL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperJeff Smith
 
Debugging PL/SQL with Oracle SQL Developer
Debugging PL/SQL with Oracle SQL DeveloperDebugging PL/SQL with Oracle SQL Developer
Debugging PL/SQL with Oracle SQL DeveloperJeff Smith
 
If You Oracle Then You Should Twitter Too
If You Oracle Then You Should Twitter TooIf You Oracle Then You Should Twitter Too
If You Oracle Then You Should Twitter TooJeff Smith
 
My Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler FeaturesMy Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler FeaturesJeff Smith
 
Oracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsOracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsJeff Smith
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerJeff Smith
 
Oracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewOracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewJeff Smith
 
Oracle SQL Developer Top 10 Tips & Tricks
Oracle SQL Developer Top 10 Tips & TricksOracle SQL Developer Top 10 Tips & Tricks
Oracle SQL Developer Top 10 Tips & TricksJeff Smith
 
Oracle SQL Developer Tips & Tricks
Oracle SQL Developer Tips & TricksOracle SQL Developer Tips & Tricks
Oracle SQL Developer Tips & TricksJeff Smith
 

More from Jeff Smith (18)

Oracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG EditionOracle REST Data Services: POUG Edition
Oracle REST Data Services: POUG Edition
 
Oracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data EditionOracle SQL Developer Tips and Tricks: Data Edition
Oracle SQL Developer Tips and Tricks: Data Edition
 
Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl
 
Oracle SQLcl: Formatting your Query Results
Oracle SQLcl: Formatting your Query ResultsOracle SQLcl: Formatting your Query Results
Oracle SQLcl: Formatting your Query Results
 
Oracle Database Management REST API
Oracle Database Management REST APIOracle Database Management REST API
Oracle Database Management REST API
 
Oracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerOracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL Server
 
Social Media - Why a Database Person Should Care
Social Media  - Why a Database Person Should CareSocial Media  - Why a Database Person Should Care
Social Media - Why a Database Person Should Care
 
Oracle SQL Developer Reports
Oracle SQL Developer ReportsOracle SQL Developer Reports
Oracle SQL Developer Reports
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should Be
 
PL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperPL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL Developer
 
Debugging PL/SQL with Oracle SQL Developer
Debugging PL/SQL with Oracle SQL DeveloperDebugging PL/SQL with Oracle SQL Developer
Debugging PL/SQL with Oracle SQL Developer
 
If You Oracle Then You Should Twitter Too
If You Oracle Then You Should Twitter TooIf You Oracle Then You Should Twitter Too
If You Oracle Then You Should Twitter Too
 
My Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler FeaturesMy Favorite Oracle SQL Developer Data Modeler Features
My Favorite Oracle SQL Developer Data Modeler Features
 
Oracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your DesignsOracle SQL Developer Data Modeler - Version Control Your Designs
Oracle SQL Developer Data Modeler - Version Control Your Designs
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
 
Oracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewOracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features Overview
 
Oracle SQL Developer Top 10 Tips & Tricks
Oracle SQL Developer Top 10 Tips & TricksOracle SQL Developer Top 10 Tips & Tricks
Oracle SQL Developer Top 10 Tips & Tricks
 
Oracle SQL Developer Tips & Tricks
Oracle SQL Developer Tips & TricksOracle SQL Developer Tips & Tricks
Oracle SQL Developer Tips & Tricks
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

REST Enabling your Oracle Database (2018 Update)

  • 1. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | ORDSDatabaseRESTAPI https://oracle.com/rest Jeff Smith Senior Principal Product Manager Jeff.d.smith@oracle.com || @thatjeffsmith Database Tools, Oracle Corp
  • 2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Not Just THAT SQLDev Guy… • Database Development Tools team • Product manager/story teller • Specialized Database tooling since 2001 • I bother help people online as @thatjeffsmith • Contact me for a free remote presentation for your group/company
  • 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle REST Data Services 3 Formerly Known as the APEX Listener
  • 4. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Get audience sympathy/laughing early • I’m gonna need a REST API for all of our Oracle data… • …first thing Monday
  • 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Your Requirements • No connections to the DB (directly at least) • No DB authentication (let the app/web tier handle that) • Link driven (stateless) • Plays nice with the rest of the apps – Standard response/error codes – JSON – Well documented
  • 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Employees Table => • GET • PUT • POST • DELETE • DESC • DOCS /ords/hr/employees /ords/hr/employees/ /ords/hr/employees/:id
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | {JSON} or JavaScript Object Notation • JAY-sun • Not just for JavaScript • Skinnier than XML • Flexible – Easily adapted to represent database objects & data • Link-friendly
  • 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 8 Tabular Nested Hyperlink
  • 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | But we never use SQL, only PL/SQL Table APIs! • No worries! • We auto-magically handle PL/SQL too • RPC -> POST via HTTPS /ords/hr/procedureA • Responses & Results (OUTs/RETURNs/REFCURSORs), in {JSON}
  • 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Why should a DBA or PL/SQL Dev care about REST? • RESTful web services are a way of providing interoperability between computer systems on the Internet • REST often treated as a Religion, BUT… • …provides a predictable model for delivering services • We aim for pure REST, but don’t let that pursuit get in the way of practicality
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | REpresentational State Transfer (REST) It relies on a stateless, client-server, cacheable communications protocol -- and in virtually all cases, the HTTP(S!) protocol is used. REST is an architecture style for designing networked applications. The idea is that, rather than using complex mechanisms such as CORBA, RPC or SOAP to connect between machines, simple HTTP is used to make calls between machines. (rest.elkstein.org) 11
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Small uniform set of operations: GET, POST, PUT, DELETE (CRUD!) • Small set of uniform status codes URLs & hyperlinks encourage stateless behavior • Text based protocol with simple request/response model REST is Easy
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • 1xx Informational responses. • 2xx Success. • 3xx Redirection. • 4xx Client errors. • 5xx Server errors. About those Codes
  • 14. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | • Model resources, not actions: – GET /ords/hr/employees/ - GOOD – GET /ords/hr/delete_emp/ - BAD – DELETE /ords/hr/employees/97 - GOOD • Uniform operations on all resources: – GET, POST, PUT, DELETE, OPTIONS, HEAD • Stateless requests, state transitions communicated via hyper-links. The Architectural Style of the Web{REST}
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Resource Collection Pattern • MASTER RESOURCE: called the Collection URI: https://example.com/ords/hr/employees/ • DETAIL RESOURCE; called the Item URI: https://example.com/ords/hr/employees/:id 15
  • 16. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Method Purpose Classification Database Operation GET Retrieve resource Safe, Idempotent SELECT PUT Create or replace resource Idempotent MERGE, UPDATE DELETE Delete resource Idempotent DELETE POST Anything. Normally create Unsafe INSERT The Verbs
  • 17. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | • Java JEE mid tier application, e.g., WebLogic, Tomcat, Glassfish (deprecated) – Also supported “Standalone” mode • For input, maps/binds URI to SQL and PL/SQL • For output, transforms results to JSON and other formats Oracle REST Data ServicesHTTP(S) client Oracle Database SQLMap & BindURI JSON Transform to JSON SQL Result Set How do we apply this Architectural Style to a DB?
  • 18. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | https://host/ords/human/peeps/10 SELECT … WHERE EMPLOYEE_ID = :id Oracle DB 1. Browser GET request 2. Proxy connect HR, executes ‘peeps’ HANDLER code ORDS Runs in WLS, Tomcat, or as a standalone process Oracle REST Data Services Anatomy of a RESTful Service Transaction
  • 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Typical Architecture • Standard webserver layout • Implements Java Servlet • Deploys to WLS, Tomcat, Glassfish • OR Embedded Jetty (standalone) WLS, Glassfish, Tomcat ORDS Apache Static Files -HTML, CSS, JS /hr/emp JSON Binary HTML … HTTP(s) Results JDBC
  • 20. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | And it’s Easy! I had been looking for a chance to perform a POC, so I proposed I just provide him with a couple of web services. In under a day I had functioning web services in place for him to consume. There’s been refinements to them and new ones developed since then. We are now exploring where else we could leverage this technology. - a REAL customer talking about ORDS
  • 21. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | ORDS – How do I get started??? Use SQL Developer to install & run. Use Hands On Labs to learn.
  • 22. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Full Command-Line Interface & PL/SQL API
  • 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Enable a Schema • Services are EXECUTED as the REST enabled schema USER … • … via ORDS_PUBLIC_USER Proxy Connect • What your session can see & do = straight forward & predictable • Secured/Authorization outside the database
  • 24. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Develop RESTFul Services: PL/SQL, GUI, or even REST BEGIN ORDS.ENABLE_SCHEMA( p_enabled => TRUE, p_schema => 'ORDS_DEMO', p_url_mapping_type => 'BASE_PATH', p_url_mapping_pattern => 'autodemo', p_auto_rest_auth => FALSE); ORDS.DEFINE_MODULE( p_module_name => 'SPLAT', p_base_path => '/splat/', p_items_per_page => 25, p_status => 'PUBLISHED', p_comments => NULL); ORDS.DEFINE_TEMPLATE( p_module_name => 'SPLAT', p_pattern => 'types', p_priority => 0, p_etag_type => 'HASH', p_etag_query => NULL, p_comments => NULL); ORDS.DEFINE_HANDLER( p_module_name => 'SPLAT', p_pattern => 'types', p_method => 'GET', p_source_type => 'json/query', p_items_per_page => 25, p_mimes_allowed => '', p_comments => NULL, p_source => 'select * from d_types' ); COMMIT; END;
  • 25. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Code and No/Low Code RESTful Service Options  No need to know Java  Database developers (PLSQL & SQL) get started quickly  PL/SQL API  GUI/IDE Support (SQL Developer!)
  • 26. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Manual – You Define Modules/URIs/Handlers/the Code
  • 27. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Automatic  Pick the Database objects to PUBLISH  TABLEs and VIEWs  GET, POST, PUT, DELETE handlers avail for CRUD  Stored Procedures, Functions, Packages (PL/SQL)  POST handler avail for RPC
  • 28. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 29. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Auto enablement of RESTful request modules – User Interface Exposes these operations • Schema level Metadata • Table Metadata • Get ( Select ) • Query ( Filtering/Order/ASOF ) • Insert • Update • Delete • Load CSV
  • 30. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Update a Row 32 METHOD : PUT /:PK REQUEST BODY : JSON RESPONSE: 200 OK • Location (Header) • JSON (Body)
  • 31. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Remote Procedure Call over HTTP(S) via POST ORDS takes parameters as JSON, executes PL/SQL, grabs output, sends back down as JSON OUT INTEGER & SYS_REFCURSOR { "total_payroll": 631230, "peeps_numbers": [ { "id": 81, "name": "Dummy4", "salary": 0, "hire_date": "2017-06-20T13:29:00Z" }, { "id": 65, "name": "Bart", "salary": 0, "hire_date": "2017-06-20T13:29:00Z" }, { "id": 79, … }
  • 32. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Execute PL/SQL TABLE API Execute, REFCURSOR RETURN
  • 33. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Ok, our boss came back with more details • Funny pictures on the internet • Put them in a table • Show me a list of the funnies • Let me see them on demand
  • 34. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Scenario: Our Table
  • 35. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | The RESTful Service (POST – PL/SQL Block)
  • 36. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | The POST Call (Postman)
  • 37. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://localhost:8080/ords/hr/test2/media") .post(null) .addHeader("content-type", "image/png") .addHeader("title", "18.2 tease") .addHeader("cache-control", "no-cache") .addHeader("postman-token", "86b344ef-2aba-12e2-8788-4c316bc866e3") .build(); Response response = client.newCall(request).execute(); The POST Call (Java)
  • 38. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | The POST Call (cURL) curl -X POST http://localhost:8080/ords/hr/test2/media -H 'cache-control: no-cache’ -H 'content-type: image/png' -H 'postman-token: bf2bcb0d-8759-fc70-98ff-c3633b418dcb' -H 'title: 18.2 tease'
  • 39. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | The Response
  • 40. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | How About API to get all the images? select title ,content_type ,id "$uri" from gallery order by title
  • 41. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Module URI Templates /ords/hr/employees /ords/hr/employees/ /ords/hr/employees/:id SQL & PLSQL
  • 42. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | {Swagger} Requirement: WELL DOCUMENTED
  • 43. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Quick, Check in to Source Control!
  • 44. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Mission Accomplished • Link driven (stateless) • Plays nice with others – Standard response/error codes – JSON – Well documented BONUS! – Supported by Oracle – No additional cost
  • 45. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | • Disabled by default • AUTH by user with sql dev priv or via DB curl -X POST http://localhost:8080/ords/hr/_/sql -H 'authorization: Basic SFI6b3JhY2xl’ -H 'cache-control: no-cache’ -H 'content-type: application/sql’ -H 'postman-token: 23a49622-a195-cb76-0606-358f3e371cdd’ -d 'SELECT first_name, last_name, department_name FROM hr.employees, hr.departments where employees.department_id = departments.department_id' Execute SQL via POST New for 17.4 - _/sql/
  • 46. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | ORDS is Flexible - Security Caveats • Almost all dev/demo/blog is done with security off & with HTTP • Always, always, always secure REST services and run with HTTPS See Scott Spendolini’s slides on Securing your REST APIs
  • 47. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | First Party Authentication • Oracle REST Data Services specific solution • Only available to the author of the API, application must be deployed on same origin as API • https://example.com/api & https://example.com/app ✓ • https://api.example.com & https://app.example.com ✗ • User enters credentials in sign-in form, ORDS issues cookie, cookie is only validated by ORDS if the request is determined to originate from the from the same origin as the REST Service. 49
  • 48. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | About OAuth 2.0 • IETF standard for securing access to REST APIs • Comes in two forms: • Two Legged - For Business to Business, server to server applications • Example: Sync HR data between internal applications • Three Legged - For Business to Consumer, app to end-user applications • Example: Share subset of HR data with external benefits provider after employee approves access. • Third party registers client, issued credentials, uses credentials to acquire access token, uses access token with request to prove authorization 50
  • 49. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | External Authentication • Comes in many flavors, for example: • Oracle Access Manager - SSO cookie at Oracle OHS server level authenticates users stored in Oracle Identity Manager • ORDS does not perform authentication, just authorization. • Usually relies on HTTP cookies, need to restrict CORS allowed Origins to avoid CSRF 51
  • 50. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Coming Later This Year • Available for On-Premises and Oracle Cloud DB Services • Supports 11gR2 and higher • Supports ‘Classic’ & Multitenant Architectures • Supports RAC & Exadata • Optional REST API for managing your Oracle Database
  • 51. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | In the year 2018…REST APIs for the Database! Listener – Start, stop, status Database Ops Start, stop, alerts, INIT params, rotate TDE keys PDB Ops Start, stop, create, clone, drop, plug, unplug OS Stats Memory, cpu, processes Reporting Backups, sessions, waits, ASH, AWR, locks, V$LONG_OPS, RTSM
  • 52. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Clone a PDB, Get a list of Wait Events, Read the Alert Log…
  • 53. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Plus SQL Developer Web • Optional! • 11gR2 and higher • DBA screens • SQL Worksheet – Run SQL, scripts, explain plan, autotrace, SQL history, formatter, insight – Create & Edit TABLE dialogs • RE Schemas to a Relational Diagram/DD Reports Cloud First (Live in DBaaS NOW), On-Premises Later this Year
  • 54. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | SQLDev Web – the Demo Runs out of ORDS
  • 55. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Thanks! Questions? Resources • Blogs • Videos • GitHub Examples • Articles – UKOUG Scene Why REST, and What’s in it or Me? – Oracle Mag AUTO REST & REST Enabled SQL

Editor's Notes

  1. There have been many many remote procedure call/distributed communication protocols. Many have been very deeply specified with thousands of pages of specifications, but in the end the industry moved away from these protocols to a much looser concept. So loose it cannot even deemed a protocol, rather REST is referred to as an architectural style. REST won not by being the most advanced, or the most capable, or the most efficient, but by being the easiest to get to grips with. Which is both a blessing and a curse. The world is full of less than optimal REST APIs. Because REST is so approachable folks quickly move to building and shipping APIs without considering some of the more thorny issues that every distributed application has to deal with How to manage concurrency, how to deal with lost updates, co-ordinate transactions How to deal with unavailability How to deal with massive scale Oracle REST Data Services is designed to deal with many of these issues, we’ve done the hard thinking and chosen approaches to deal with these issues so developers using ORDS don’t need to worry about them so much. I want to draw a comparison between REST and another foundational technology, UNIX. When I think of UNIX I picture big air conditioned rooms in data centres full of big iron servers. But that’s not the reality of UNIX today. It’s not just data centres and backend servers. The reality is UNIX is all around you, you wear it on your wrist, you carry it in your pocket, it powers the movies you watch when sat on an aeroplane, it controls the car you drive, it is literally everywhere. It is part of the fabric of our reality, but it’s not something out there in front of you. It’s a building block, something atop which much of the rest of the technology in our lives is built upon. I’m sure everyone in this room knows how to get around in UNIX, I’m sure that wasn’t always the case, there was a time when all I knew was MS-DOS and Windows. UNIX was a foreign land, and even seemed like something that was fading away under the march of Windows, but that time was so long ago and now I can’t picture a future where knowing and being comfortable using UNIX won’t be a valuable skill for at least another decade or two. I feel REST is following a similar trajectory. It is almost as old as the HTTP protocol itself, and it’s popularity and ubiquity has taken a considerable amount of time to build, but now that it’s value has been recognised, I don’t see it’s utility being displaced until the next paradigm shift in computing technology occurs. It has become one of the building blocks we take for granted. And thus everyone needs to know and understand REST and more importantly every piece of technology involved in distributed computing needs to be a good and competent REST citizen.
  2. A typical REST resource doesn’t just contain the tabular data typical of a relational model. It will often also include: nested data structures (e.g. categories above) Hyperlinks (e.g. the replies link above)
  3. There have been many many remote procedure call/distributed communication protocols. Many have been very deeply specified with thousands of pages of specifications, but in the end the industry moved away from these protocols to a much looser concept. So loose it cannot even deemed a protocol, rather REST is referred to as an architectural style. REST won not by being the most advanced, or the most capable, or the most efficient, but by being the easiest to get to grips with. Which is both a blessing and a curse. The world is full of less than optimal REST APIs. Because REST is so approachable folks quickly move to building and shipping APIs without considering some of the more thorny issues that every distributed application has to deal with How to manage concurrency, how to deal with lost updates, co-ordinate transactions How to deal with unavailability How to deal with massive scale Oracle REST Data Services is designed to deal with many of these issues, we’ve done the hard thinking and chosen approaches to deal with these issues so developers using ORDS don’t need to worry about them so much. I want to draw a comparison between REST and another foundational technology, UNIX. When I think of UNIX I picture big air conditioned rooms in data centres full of big iron servers. But that’s not the reality of UNIX today. It’s not just data centres and backend servers. The reality is UNIX is all around you, you wear it on your wrist, you carry it in your pocket, it powers the movies you watch when sat on an aeroplane, it controls the car you drive, it is literally everywhere. It is part of the fabric of our reality, but it’s not something out there in front of you. It’s a building block, something atop which much of the rest of the technology in our lives is built upon. I’m sure everyone in this room knows how to get around in UNIX, I’m sure that wasn’t always the case, there was a time when all I knew was MS-DOS and Windows. UNIX was a foreign land, and even seemed like something that was fading away under the march of Windows, but that time was so long ago and now I can’t picture a future where knowing and being comfortable using UNIX won’t be a valuable skill for at least another decade or two. I feel REST is following a similar trajectory. It is almost as old as the HTTP protocol itself, and it’s popularity and ubiquity has taken a considerable amount of time to build, but now that it’s value has been recognised, I don’t see it’s utility being displaced until the next paradigm shift in computing technology occurs. It has become one of the building blocks we take for granted. And thus everyone needs to know and understand REST and more importantly every piece of technology involved in distributed computing needs to be a good and competent REST citizen.
  4. The Collection URI is the entry point to the API, it’s function is to list all the items in the collection and provide an endpoint for creating new resources. It is typically a concrete URI, without any wildcarding/patterning. The Item URI is parameterized/wildcarded, it represents the naming pattern for all Item Resources in the Collection. It’s function is to provide the detail of a resource, along with the means to update and/or delete the resource.
  5. New with REST Data services 3.0 it does not require APEX to define your REST Data services. Oracle currently distributes “Oracle APEX Listener”, which will be renamed to Oracle REST Data Services. Delivered with Database 12.1.0.2 Java Based plugin replacement for Apache mod_plsql Formally known as Oracle APEX listener available on OTN Available today on our Database Cloud Schema Service
  6. Perform a GET on the Collection URI to retrieve the resource In ORDS the response is a JSON document with two main elements: items: lists the items in the collection links: provides hyperlinks to help navigate the collection (next) and to identify the URI to use to POST new Items to the Collection