upcoming jdeveloper adf business components rest support
DESCRIPTION
Sneak preview of functionality that will be added to future version of JDeveloepr that allow you to expose ADF Business Component view objects as RESTful web servicesTRANSCRIPT
![Page 1: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/1.jpg)
<Insert Picture Here>
Upcoming ADFBC REST Support in JDeveloper
Steven Davelaar twitter:@stevendavelaarblog: http://www.ateam-oracle.com/Oracle Fusion Middleware Architects Team (the “A-Team”)
![Page 2: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/2.jpg)
Disclaimer
The following is intended to outline our general product
direction. It is intended for information purposes only,
and may not be incorporated into any contract.
It is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making
purchasing decisions. The development, release, and
timing of any features or functionality described for
Oracle’s products remains at the sole discretion of
Oracle.
![Page 3: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/3.jpg)
Oracle and REST Web Services
• Corporate-wide standardization committee to ensure
consistency in REST services accross ALL products
• Oracle REST Standards include standards for
• Resource naming
• Resource URI • Resource URI
• Resource Metadata
• Resource Catalog
• Pagination
• Security
• Caching
![Page 4: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/4.jpg)
Oracle REST API’s Use JSON Payload
• JavaScript Object Notation
• text-based open standard
designed for human-readable
data interchange. It is derived
from the JavaScript scripting
language for representing simple language for representing simple
data structures and associative
arrays, called objects. Despite its
relationship to JavaScript, it is
language-independent, with
parsers available for many
languages.
![Page 5: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/5.jpg)
Oracle and JSON Schema
• JSON Schema is WSDL + XSD for JSON
• Describes the available Resource URI’s, Request and
Response MediaTypes, Resource metadata, etc.
• Not an industry standard (yet)
• Not yet widely adopted, though Google uses it
• Extensible
• Validation tools available
• Oracle resource catalog will be based on JSON
Schema with keyword extensions
• Oracle will add more metadata for Data Controls / UI
Generation
![Page 6: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/6.jpg)
REST support in Future JDeveloper
versions
• New ADF BC REST wizard to generate RESTful
services using JSON
• New REST Data Control
• No longer part of URL Data Control• No longer part of URL Data Control
![Page 7: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/7.jpg)
ADF BC Rest Services
• The resources are based on VO instances (and its
accessors) and are defined by a Resource Definition
File
• Resource Departments: Based on DepartmentVO and its
accessor to EmployeeVO
• Resource Employees: Based on EmployeeVO
• Each resource definition provides two kinds of
resources:
• Resource Collection
• Resource
![Page 8: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/8.jpg)
ADF BC Rest – Resource Collection
• Departments
• http://server/application/rest/Departments
• Employees
• http://server/application/rest/Employees
• Employees in a "department context"• Employees in a "department context"
• http://server/application/rest/Departments/10/Employees
![Page 9: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/9.jpg)
ADF BC Rest – Single Resource
• Department
• http://server/application/rest/Departments/10
• Employee
• http://server/application/rest/Employees/103
• Employee in a "department context"• Employee in a "department context"
• http://server/application/rest/Departments/10/Employees/103
![Page 10: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/10.jpg)
Application Module – REST Tab
![Page 11: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/11.jpg)
REST Resources Definition
![Page 12: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/12.jpg)
Example -/rest/Departments
![Page 13: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/13.jpg)
ADF BC Rest - Expanding Links
?expand=EmployeesView
![Page 14: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/14.jpg)
ADF BC Rest - No Links
?onlydata
![Page 15: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/15.jpg)
ADF BC Rest - Pagination
• Request param ‘limit’ specifies range size
• Request param ‘offset’ specifies start index
• Example:
• /rest/Departments?limit=3&offset=0
• Retrieves first three departments• Retrieves first three departments
![Page 16: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/16.jpg)
ADF BC Rest – Collection Filtering
• Request param ‘query’ can specify “where clause”
• Examples:
• query={DepartmentName M*} -> Returns departments
starting with M
• query={DepartmentName *u*} -> Returns departments • query={DepartmentName *u*} -> Returns departments
containing an ‘u’ in the name
• query={DepartmentId < 40} -> Returns departments with Id
lower than 40
![Page 17: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/17.jpg)
ADF BC Rest – Payload Filtering
• Request param ‘fields’ can specify comma-delimited
list of attributes to include
• Example:
• /rest/Departments?fields=DepartmentName
• Retutrns only DepartmentName in JSON payload• Retutrns only DepartmentName in JSON payload
![Page 18: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/18.jpg)
ADF BC Rest – Resource Catalog
http:/server/application/rest/describe
• Lists all resources, attribute metadata, links, children,
actions
• Describe can also be done for one specific resource
• http://server/application/rest/Departments/describe
![Page 19: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/19.jpg)
D E M O N S T R A T I O ND E M O N S T R A T I O N
Building REST Services with
ADF BC
![Page 20: Upcoming JDeveloper ADF Business Components REST support](https://reader035.vdocuments.site/reader035/viewer/2022081821/5485f2efb47959f60c8b4f84/html5/thumbnails/20.jpg)
New ADF Mobile REST Data Control
• Goal: Leverage ADF BC Rest Services
• Support CRUD operations and provide data control
operations that allow the developer to easily use
declarative bindings
• Use metadata exposed by the services' describe• Use metadata exposed by the services' describe
• Support for links and relationships
• Support for paging