Oracle® Beehive SOAP Web Services API Reference

  Release 2 (2.0.1.7)
  E22020-03
Oracle Beehive

Projections

Although not strictly a REST concept, Oracle Beehive RESTful Web services are heavily reliant on the concept of projections, which limit the quantity of data returned for each instance of a given type. Projections do not limit the quantity of instances returned.

For example, the call to /user/{id}?projection=FULL retrieves the OrganizationUser with the identifier specified with {id} along with all of the members of OrganizationUser. The call to /user/{id}?projection=BASIC retrieves the same OrganizationUser except it retrieves only a subset of the members of OrganizationUser.

The following is the response payload from a GET method call to /my/user?projection=EMPTY:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:organizationUser xmlns:ns2="http://www.oracle.com/beehive" xmlns:ns3="http://www.oracle.com/beehive/rest">
<collabId>
<id>39F7:61B5:user:7B4EEC8DFE384BD5B95CF22E932CD625000000000000</id>

<resourceType>user</resourceType>
</collabId>
<deleted>false</deleted>
<effectiveExternalInbox>false</effectiveExternalInbox>

<extendedEnterpriseUser>false</extendedEnterpriseUser>
<externalInbox>false</externalInbox>
<timeZoneModified>false</timeZoneModified>
</ns2:organizationUser>

The following is the response payload from a GET method call to /my/user?projection=BASIC. This represents the same user as the previous call, but it contains more information:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:organizationUser xmlns:ns2="http://www.oracle.com/beehive" xmlns:ns3="http://www.oracle.com/beehive/rest">
<collabId>
<id>39F7:61B5:user:7B4EEC8DFE384BD5B95CF22E932CD625000000000000</id>

<resourceType>user</resourceType>
</collabId>
<deleted>false</deleted>
<name>testuser</name>

<parent xsi:type="ns2:enterprise" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<collabId>
<id>39F7:61B5:enpr:7ADDEAC1D637D488E040E50A6A923DF900000000021E</id>
<resourceType>enpr</resourceType>
</collabId>

<deleted>false</deleted>
<allocatedQuota>0</allocatedQuota>
</parent>
<snapshotId>00000000000000000000000000247006000001259E8D7B500000000000000000</snapshotId>

<properties>
<map/>
</properties>
<status>ENABLED</status>
<effectiveExternalInbox>false</effectiveExternalInbox>

<extendedEnterpriseUser>false</extendedEnterpriseUser>
<externalInbox>false</externalInbox>
<familyName>testuser</familyName>
<locale>en</locale>

<personalWorkspace>
<collabId>
<id>39F7:61B5:wspr:7B4EEC8DFE384BD5B95CF22E932CD625000000000001</id>
<resourceType>wspr</resourceType>
</collabId>

<deleted>false</deleted>
<shortWorkspaceId>0</shortWorkspaceId>
</personalWorkspace>
<timeZoneModified>false</timeZoneModified>

</ns2:organizationUser>

Consequently, before using a projection, verify with the API reference which members are retrieved. Additionally, if you are unmarshalling objects returned from Oracle Beehive RESTful Web services with a strongly typed language such as Java or C#, ensure that you only dereference values from members returned by the projection that you used. Because a projection returns only a subset of the members of a particular object, languages such as Java and C# will assign default values to members not returned by the projection, and these values are independent of what is returned by the server and thus invalid.


Oracle Logo
Copyright © 2008, 2010, Oracle and/or its affiliates. All rights reserved.
Legal Notices

Top