Boost PC performance: How more available memory can improve productivity
AMIS Oracle ADF 12c Launch event 06 Steven Davelaar future REST features
1. <Insert Picture Here>
Upcoming REST Support in JDeveloper
Steven Davelaar twitter:@stevendavelaar
blogs: blogs.oracle.com/jheadstart and blogs.oracle.com/ateam_webcenter
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 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 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 Generic REST Data Control
• New ADF Mobile REST 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"
• 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"
• 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
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
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
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 specifc resource
• http://server/application/rest/Departments/describe
19. D 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
• Support for links and relationships
• Support for paging