This document discusses upcoming support for REST web services in Oracle JDeveloper using ADF Business Components. Key points include:
- Oracle has established REST standards for resource naming, URIs, metadata, pagination, security, and caching across all Oracle products.
- ADF BC will generate RESTful services using JSON payloads from VO instances defined in a resource definition file.
- Resources will include collections, single resources, and resources in a "context" that allow filtering and expanding links between related data.
- Features like pagination, filtering, payload filtering, and a resource catalog will provide metadata about the REST resources and allow customized requests.
- A new ADF Mobile REST Data Control is being developed
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Upcoming JDeveloper ADF Business Components REST support
1. <Insert Picture Here>
Upcoming ADFBC REST Support in JDeveloper
Steven Davelaar twitter:@stevendavelaar
blog: http://www.ateam-oracle.com/
Oracle Fusion Middleware Architects Team (the “A-Team”)
2. 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.
3. 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
4. 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 simplelanguage 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.
5. 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
6. 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
7. 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
8. 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
9. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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