Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support,...
Transcript of Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support,...
![Page 1: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/1.jpg)
![Page 2: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/2.jpg)
OracleORDS101-JumpstartyourDevelopment
DietmarAustOpal-Consul;ng,Kölnwww.opal-consul;ng.de
![Page 3: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/3.jpg)
► Dipl.-Inform.DietmarAust,FreelanceConsultant▪ Master'sDegreeinComputerScience(MSCS)
► BuildingOraclebasedWebApplica;onssince1997▪ Portal,Forms,Reports,OWAToolkit,nowAPEX!
► 1997-2000:ConsultantatOracleGermany
► Since09/2000:FreelanceConsultant,Since2006–APEXonly!
► Blog:h\p://daust.blogspot.com/
► RegularpresenteratOracleconferences(ODTUG,DOAG,OOW)
► AuthoroftheJasperReportsIntegra;ontoolkit▪ h\p://www.opal-consul;ng.de/tools
DietmarAust
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 3
![Page 4: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/4.jpg)
DietmarAust
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 4
► 2015DatabaseDeveloperoftheyearintheORDScategory
![Page 5: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/5.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 5
Agenda
![Page 6: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/6.jpg)
► WhatisREST?
► WhatisORDS?▪ ComponentsandArchitecture
► ManagementoftheRESTdefini;onswithSQLDeveloperandtheAPI
► UseCases▪ Naviga;on/Links/Filter/Sor;ng/Parameter(Input/Output)
► Security▪ Authen;ca;onandAuthoriza;on
Agenda
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 6
![Page 7: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/7.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 7
WhatisREST?
![Page 8: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/8.jpg)
► Itisanarchitecturalstyleforapplica;ons,neitheraprotocolnoraW3Cstandard
► REST:=Representa;onalStateTransfertermcoinedin2000byRoyFielding▪ h\ps://en.wikipedia.org/wiki/Representa;onal_state_transfer
► Characteris;cs:▪ Stateless(100%oftheapplica;onstateismanagedbytheclient)▪ Basedontheh\pprotocol▪ Highlyscaleable▪ RESTusesh\pmethods(POST,PUT,GET,DELETE,…)toimplementCRUD
opera;ons(Create/Read/Update/Delete)
► Why?▪ Lightweightalterna;vetoRPC(RemoteProcedureCalls)andotherWebServices
(SOAP,WSDL,…)▪ IncreasinglypopularthroughAPIsprovidedbyGoogle,Facebook,Twi\erand
others.
WhatisREST?Defini;on
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 8
![Page 9: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/9.jpg)
► Ressourcesprovideservicesandareuniquelyiden;fyable▪ h\p://api.example.com/customers/▪ h\p://api.example.com/customers/1234▪ h\p://api.example.com/customers/1234/orders/
► Mul;pleURIscanpointtothesameressource:▪ h\p://example.org/NewOrleans/traffic/I10▪ h\p://example.org/traffic/NewOrleans/I10
► Wemodeltheressource,nottheac;on!▪ Useofnounsinpluralform▪ PUTh\p://example.com/accounts/12345▪ PUTh\p://example.com/accounts/edit/12345▪ POSTh\p://example.com/accounts/▪ POSTh\p://example.com/accounts/addaccount
WhatisREST?Ressources
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 9
![Page 10: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/10.jpg)
► Methodsimplementaspecificopera;on▪ Uniformopera;onsforallressources▪ GET,POST,PUT,DELETE,OPTIONS,HEAD
► Weuseveryfewverbstooperateonmanydifferentnouns.
WhatisREST?Methods
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 10
![Page 11: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/11.jpg)
► Communica;onofsuccessanderrormessagesthroughstandardHTTPResponsecodes1xx,2xx,3xx,4xx,5xx▪ h\p://www.restapitutorial.com/
h\pstatuscodes.html#
WhatisREST?Methods
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 11
![Page 12: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/12.jpg)
► Representa;onsdeterminehowtheanswerwillbeinterpreted▪ XMLrepresenta;onusingmime-type:text/xml▪ JSONrepresenta;onusingmime-type:
applica;on/json
► Asingleressourcecanprovidemul;pledifferentrepresenta;ons▪ JSON,XML,CSV…▪ Therightrepresenta;onisac;vely„nego;ated“▪ Theclientsendsalistofpreferredmime-types–
theserverrespondswiththebestanswerandsendsthechosenmime-typeinthe„Content-Type“h\pheader.
WhatisREST?Representa;ons
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 12
![Page 13: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/13.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 13
WhatisORDS?
![Page 14: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/14.jpg)
► OracleRestDataServices(ORDS)▪ MiddlewareJ2EEcomponentinthe
applica;onserver(WLS,Glassfish,Tomcat)▪ TranslatesURLsintoacallinthedatabase
(eitherselectorstoredprocedurecall)
► Threemajorusecases▪ SupportforOWAtoolkitapplica;ons(will
replacemod_plsql)▪ OracleApplica;onExpress(APEX)▪ RESTfulWebservices
WhatisORDS?
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 14
![Page 15: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/15.jpg)
WhatisORDS?TheHistory
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 15
Version Date Description
1.0 2010 First release as Oracle APEX Listener with with support for OWA toolkit used by APEX
1.1 2011 First release with REST support for JSON, Microdata, CSV, Pagination. Also added FOP
2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration
2.0.5 2013 Added support for Oracle Pluggable Databases (12c)
2.0.6 2014 Renamed to Oracle REST Data Services to emphasize REST commitment, integration with APEX 4.2 in SQL Workshop
2.0.8 2014 Added REST Filtering
3.0.0 2015 REST AutoTable, NoSQL, DB12 JSON, Bulk loading over REST,…
![Page 16: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/16.jpg)
ORDSiscurrentlytransi2oningawayfromthedependencyonAPEX
► ORDSrequiresarepositorytostorethewebservicedefini;ons
WhatisORDS?APEXRESTvs.ORDS_METADATARESTSupport
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 16
► ORDS2.0
► Schemas▪ APEX_040200/APEX_050000▪ APEX_LISTENER▪ APEX_REST_PUBLIC_USER
► Configurationusing▪ APEXSQLWorkshop▪ SQLDeveloper
► ORDS3.0
► Schemas▪ ORDS_METADATA▪ ORDS_PUBLIC_USER
► Configurationusing▪ SQLDeveloper▪ PL/SQLAPI
![Page 17: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/17.jpg)
► APEXRESTsupportintheAPEXSQLWorkshop
WhatisORDS?APEXRESTvs.ORDS_METADATARESTSupport
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 17
![Page 18: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/18.jpg)
► Twodifferentrepositories:APEXRESTandORDS_METADATAREST▪ TypicallybothareinstalledwhenusingAPEX5▪ APEX5requiresthatyourunapex_rest_config.sqlwhichcreatesAPEX_LISTENER
andAPEX_REST_PUBLIC_USER
► TheFuture?▪ NewfeatureswillonlybeaddedtoORDS_METADATAREST
► InwhichrepositorydoIcreatethewebservice?▪ APEXREST
− Integra;onwithAPEXSession
▪ ORDS_METADATAREST− Allnewfunc;onalityisaddedtothenewrepository(only!)
► Inthispresenta;onwewillfocusonthefeaturesavailableinORDS_METADATARESTSupportwithORDS3.0
WhatisORDS?APEXRESTvs.ORDS_METADATARESTSupport
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 18
![Page 19: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/19.jpg)
► HowisaRESTwebservicecallactuallyprocessed?
WhatisORDS?Architecture
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 19
http://myhost/ords/employees/7536SELECT*FROMEMPWHEREEMPNO=:b1
Oracle DB
3. SQL Call over JDBC
Browser
1. Browser RESTful get request
2. ORDS maps to “EMPLOYEES” SQL
4. DB returns JDBC Results
5. JSON
ORDS Runs in WLS, Tomcat, Glassfish container
Oracle REST Data Services
![Page 20: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/20.jpg)
► Connec;onPooling▪ ThetargetOracleuser(schema)isac;vatedusingaProxyConnect▪ TheuserORDS_PUBLIC_USERconnecttothedatabaseandthenswitchesitsiden;tyto
thetargetOracleuser▪ Thusweneedfewerconnec;onpoolsandeachconnec;onpoolbecomessmallersince
mul;pleOracleuserscanbeservedwiththesameconnec;onpool▪ EachSQLandPL/SQLstatementisexecutedusingthetheoriginalusersession
WhatisORDS?Architecture
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 20
![Page 21: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/21.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 21
ManagementoftheRESTdefini;onswithSQLDeveloperandtheAPI
![Page 22: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/22.jpg)
► ManagementoftheRESTdefini;onswithSQLDeveloper
RESTDefini;onsManagementwithSQLDeveloper
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 22
![Page 23: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/23.jpg)
► ManagementoftheRESTdefini;onswithSQLDeveloper
RESTDefini;onsManagementwithSQLDeveloper
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 23
Oracle REST Data Services
SQL Developer
http/https
APEX_050000
ORDS_METADATA
jdbc
jdbc authenticate and authorize user
Local filestore, Admin user needs role „SQLDeveloper“
![Page 24: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/24.jpg)
► ManagementoftheRESTdefini;onswithSQLDeveloper
► Createuseroncommandline
RESTDefini;onsManagementwithSQLDeveloper
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 24
Schema/Workspace will decide between APEX REST and ORDS REST
##UsertomanageRESTdefinitionsinSQLDeveloperjava-jarords.waruserdietmar.aust"SQLDeveloper”
![Page 25: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/25.jpg)
► RESTcomponents▪ Modules
− ResourceTemplates
− Methods/Handlers(GET,PUT,POST,DELETE)
RESTDefini;onsModules,RessourceTemplatesandHandlers
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 25
![Page 26: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/26.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 26
Demo
![Page 27: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/27.jpg)
► ManagementthroughthePL/SQLAPI
► Simplefile…containsallresourcetemplatesandmethodsforamoduleinasingleplace
► Firstwedeletetheexis;ngdefini;onandthenwerecreateitfromscratch
► Verywellsuitedforscriptbaseddeployment
► APIreference(PackageORDS):h\p://docs.oracle.com/cd/E56351_01/doc.30/e56293/ords_ref.htm#AELIG90180
► UsePackageORDSinsteadofORDS_SERVICESinthefuture!!!
RESTDefini;onsManagementthroughtheAPI
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 27
![Page 28: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/28.jpg)
► ResourceTemplate–types▪ SQLQuery(legacy)(source_type_query)▪ SQLQuery(onerow)(legacy)(source_type_query_one_row)▪ Feed(source_type_feed)▪ Collec;on(source_type_collec;on_feed)▪ Collec;onItem(source_type_collec;on_item)▪ PL/SQL(source_type_plsql)
− Generateeverythingmanuallymyself
▪ Media(source_type_media)− Binaryrepresenta;ons
RESTDefini;onsResourceTemplate-Types
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 28
![Page 29: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/29.jpg)
► ResourceTemplate–Type:SQLQuery(legacy)(source_type_query)▪ Containsalinktoitself
RESTDefini;onsResourceTemplate-Types
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 29
selectemp.*fromemp
![Page 30: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/30.jpg)
► ResourceTemplateType:SQLQuery(onerow)(legacy)(source_type_query_one_row)
RESTDefini;onsResourceTemplate-Types
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 30
selectemp.*fromempwhereempno=:empno
![Page 31: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/31.jpg)
► ResourceTemplate–TypeSQL:Feed(source_type_feed)
RESTDefini;onsResourceTemplate-Types
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 31
selectemp.*fromemp
![Page 32: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/32.jpg)
► ResourceTemplate–TypeSQL:Collec;on(source_type_collec;on_feed)
► Completeincl.naviga;onlinks:▪ Self▪ Describedby▪ First(onlybypagina;onorlimit)▪ Next(onlybypagina;onorlimit)▪ Previous(onlybypagina;onorlimit)
RESTDefini;onsResourceTemplate-Types
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 32
selectemp.*fromemp
![Page 33: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/33.jpg)
► ResourceTemplate–TypeSQL:Collec;onItem(source_type_collec;on_item)▪ Containsalinktothecollec;onitself
RESTDefini;onsResourceTemplate-Types
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 33
selectemp.*fromempwhereempno=:empno
![Page 34: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/34.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 34
UseCases
![Page 35: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/35.jpg)
Firststep:EnableRESTcapabili;esforaschemainthedatabase
► UsingtheGUI(right-clickontheconnec;on)
► Usingthecommandline/API
UseCasesEnableRESTinSchema
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 35
BEGINORDS.ENABLE_SCHEMA(p_enabled=>TRUE,p_schema=>'ORDSTEST',p_url_mapping_type=>'BASE_PATH',p_url_mapping_pattern=>'ordstest',p_auto_rest_auth=>FALSE);COMMIT;END;
![Page 36: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/36.jpg)
Implementnaviga;onlinkstonavigatebetweenthedifferentressources
► Linksusedfor:▪ Linktothecurrentrow▪ Linktoanimageoranembeddedlist(ressourceorderscancontainalisttothe
relatedorderitems)▪ Linktotheparent▪ Linktoother“siblings”usingrela;vepaths,e.g.../..
UseCasesNaviga;onandLinks
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 36
![Page 37: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/37.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 37
Demo
![Page 38: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/38.jpg)
► Inputparameters▪ Implicit
− AllvariablesthatarepassedintheURLorinthecontentbody
− :content_type(varchar2,z.B.applica;on/json)
− :body(alsBLOB)
▪ Explicit(usingdeclatra;veparameters)− Allregularh\pheadervariables
− AllvariablesthatarepassedintheURLorinthecontentbody
UseCasesParameter
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 38
![Page 39: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/39.jpg)
► Outputparameters▪ Explicit
− Returnaresponsebysewngasimplebindvariablewhichisthenconvertedautoma;callytoJSONbyORDS
− Setanh\pResponseCode(Pseudo-Header:X-APEX-STATUS-CODE),e.g.201,403oruseowa_u;l.set_status_line()(3.0.5andhigher)
− RedirecttoadifferentURL(Pseudo-Header:X-APEX-FORWARD)
− Setah\pheadervariable
UseCasesParameter
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 39
![Page 40: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/40.jpg)
ModifyressourcesusingPOST,PUTandDELETE
► Createanewressource(POST)
► Updatearessource(PUT)
► Deletearessource(DELETE)
UseCasesModifyressourcesusingPOST,PUTandDELETE
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 40
Demo
![Page 41: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/41.jpg)
► RendereverythingmanuallywithPL/SQLyourself▪ GETwithTypPL/SQL▪ UseOWAToolkittowriteitout
− APEX_JSON,PL/JSON
− 12cJSONFunk;onen
UseCasesPL/SQLResourceTemplate–implementeverythingyourself
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 41
![Page 42: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/42.jpg)
► Displayanimage▪ GETresourcetemplate(typeMediaressource)
UseCasesMedia-Ressourcen
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 42
selectmimetype,product_imagefromdemo_product_infowhereproduct_id=to_number(:product_id)
![Page 43: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/43.jpg)
► Pagina;on▪ Allowstopaginatethroughtheresultset▪ Onlyapplicableforhandlertypecollec;on(source_type_collec;on_feed)▪ h\p://docs.oracle.com/cd/E56351_01/doc.30/e56293/develop.htm#BABIHBDH▪ Pa\ern:GEThttp://<HOST>:<PORT>/ords/<SchemaAlias>/
<ObjectAlias>/?offset=<Offset>&limit=<Limit>▪ Alsocreatesthelinks“NEXT”,“PREVIOUS”und“FIRST”mit
► Example:
UseCasesPagina;on
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 43
![Page 44: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/44.jpg)
► ResultSetFiltering▪ QuerySyntaxtofilteracollec;on▪ Onlyapplicableforhandlertypecollec;on(source_type_collec;on_feed)▪ h\p://docs.oracle.com/cd/E56351_01/doc.30/e56293/develop.htm#AELIG90104
► Sor;ng/OrderBy▪ QuerySyntaxtosortacollec;on▪ Onlyapplicableforhandlertypecollec;on(source_type_collec;on_feed)▪ h\p://docs.oracle.com/cd/E56351_01/doc.30/e56293/develop.htm#AELIG90104
UseCasesFilterandSort
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 44
![Page 45: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/45.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 45
Demo
![Page 46: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/46.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 46
Security
![Page 47: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/47.jpg)
► Differentwaysofauthen;ca;ngthecurrentuser▪ Authen;ca;onusingtheintegratedpasswordstore(“creden;als”file–just
recommendedfordevelopmentandtestenvironments)▪ Authen;ca;onusingtheapplica;onserver(authen;ca;onisdelegated,e.g.to
Glassfish)
► Authen;ca;onusingOAUTH2▪ Establishedstandard–usedwidely▪ Basicallycontrolsa“session”betweenclient/serverandyous;llneedto
authen;catewiththeappserver
► MoredetailstousingOAUTH2withORDS:Ar;clesfromCarstenCzarski(inGerman,butcanbetranslatedusingGoogleTranslator)▪ h\p://json-rest-oracledb.blogspot.de/2015/12/vorher-anmelden-bi\e-
authen;fizierung.html▪ h\p://json-rest-oracledb.blogspot.de/2016/01/ords-und-3-legged-oauth-so-
gehts.html
Security
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 47
![Page 48: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/48.jpg)
► Authoriza;on:=Protectaccesstoressourcesforcertainuserroles
► CreateaROLEfirst(onlypossiblethroughtheAPI)
► CreateaprivilegetoprotectafullmoduleorjustaURIpa\ern
► Cannotrequireprotec;onjustforaspecificmethod,e.g.limitaccesstoPUT,POST,DELETEandallowGETforeverybody.▪ Perhapsusingtwomodules:
− /public/departments/(implementGEThandler)
− /protected/departments/(implementPOST,PUT,DELETEhandler)
Security
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 48
![Page 49: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/49.jpg)
Security
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 49
![Page 50: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/50.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 50
Demo
![Page 51: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/51.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 51
Auto-REST
![Page 52: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/52.jpg)
QuicklyAuto-RESTenableadatabasetableorview
► Pros:▪ Fastandeasy▪ CandosomecleverthingsusingINSTEAD_OFtriggersontheview
► Cons:▪ Can’tusetheauthen;cated:current_uservariabletofigureouttheuseriden;ty
whichisrequiredforloggingpurposes
Auto-REST
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 52
![Page 53: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/53.jpg)
EnableRESTcapabili;esforatableorview
► UsingtheGUI(right-clickonthetable/view)▪ „EnableRESTService“
► Usingthecommandline/API
UseCasesEnableRESTinSchema
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 53
BEGINORDS.ENABLE_OBJECT(p_enabled=>TRUE,p_schema=>'ORDSTEST',p_object=>'DEPT',p_object_type=>'TABLE',p_object_alias=>'dept',p_auto_rest_auth=>FALSE);COMMIT;END;
![Page 54: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/54.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 54
Demo
![Page 55: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/55.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 55
Debugging/Troubleshoo;ng
![Page 56: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/56.jpg)
► Displayerrormessagesdirectlyinthebrowser(onlyuseondevelopment/testenvironments,notproduc;on!)▪ Modifydefault.xml
► Fullloggingwithalldetailsusingjava.u;l.logging▪ h\ps://cdivilly.wordpress.com/2013/03/08/configuring-logging-in-oracle-
applica;on-express-listener-2-0-1/
Debugging/Troubleshoo;ng
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 56
<entrykey="debug.debugger">true</entry><entrykey="debug.printDebugToScreen">true</entry>
![Page 57: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/57.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 57
Tools
![Page 58: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/58.jpg)
► Commandlinetool:curl-h\ps://curl.haxx.se/
► AdvancedRESTClient(forGoogleChrome)▪ h\ps://chrome.google.com/webstore/detail/advanced-rest-client/
hgmloofddffdnphfgcellkdyyjeloo
► PLSQLlogger▪ h\ps://github.com/OraOpenSource/Logger
Tools
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 58
![Page 59: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/59.jpg)
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 59
FurtherReading
![Page 60: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/60.jpg)
► Slidestodownload:h\p://daust.blogspot.de
► Wikipedia:h\p://en.wikipedia.org/wiki/Representa;onal_State_Transfer
► REST–APIDesign▪ h\p://www.vinaysahni.com/best-prac;ces-for-a-pragma;c-reszul-api▪ h\ps://www.thoughtworks.com/de/insights/blog/rest-api-design-resource-
modeling▪ h\p://blog.octo.com/en/design-a-rest-api/▪ h\ps://reszul-api-design.readthedocs.org/en/latest/intro.html▪ h\p://blog.mwaysolu;ons.com/2014/06/05/10-best-prac;ces-for-be\er-reszul-
api/
► CarstenCzarskiBlogaboutREST:h\p://json-rest-oracledb.blogspot.de/(canbetranslatedusinggoogletranslator)
FurtherReading
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 60
![Page 61: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/61.jpg)
► RESTfulWebServices,byLeonardRichardsonandSamRuby,availablefromO’ReillyMediaath\p://oreilly.com/catalog/9780596529260/
► Thesource:h\p://www.ics.uci.edu/~fielding/pubs/disserta;on/top.htmmostlychapters5and6
► Anice14minutevideointroduc;on:h\p://www.youtube.com/watch?v=YCcAE2SCQ6k
► HTTPspec:h\p://tools.iez.org/html/rfc2616
► URIspec:h\p://tools.iez.org/html/rfc3986
► JSONformat:h\p://json.org/
WeitereInforma;onsquellen
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 61
![Page 62: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/62.jpg)
Contact
29.06.2016 Oracle ORDS 101 - Jumpstart your Development Page 62
DietmarAustOpal-Consul;ng,Kölnwww.opal-consul;ng.dedaust.blogspot.comdietmar.aust@opal-consul;ng.de
![Page 63: Opal Consulting – Oracle APEX KnowHow seit 2006 ......added FOP 2.0 2012 OAuth2 support, Integrated with APEX, Multi Database, SQL Developer integration 2.0.5 2013 Added support](https://reader035.fdocuments.in/reader035/viewer/2022070215/61171e036766dd0cef1c5e9e/html5/thumbnails/63.jpg)