Oracle® Beehive RESTful Web Services API Reference Release 2 (2.0.1.7) E16658-04 |
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.
|
Top |