Beehive as an extensible platform

The internal Beehive Instance has now been upgraded to 2.0.1.6 and has resolved a lot, if not all, of the issues that existed when using the Beehive Development Kit (BDK). Developer kits always sound scary and can sometimes intimidate and for some the Beehive BDK will be no exception :-) If the initial trepidation can be put to one side the new route to the Beehive system can be made use of from programming languages like Java and from more lightweight options auch as JavaScript and JavaFX.

The BDK can be accessed as a SOAP service or as a RESTful service. Although both work pretty well, the most easy to use is the RESTful interface as this can be incorporated into Java and JavaScript in the same way. The BDK doumentation is on every instance of Beehive at http://server_name:port/comb/v1/docs so in our case this will be accessible at https://beehiveonline.oracle.com/comb/v1/docs. The RESTful type of interface is very much concerned with the object so there may have to be several calls to get to information as you interrogate the objects in the system.

For instance - the simplest call is to get our own record, e.g. https://beehiveonline.oracle.com/comb/v1/d/my/user.

Note: If you click on this link you should be presented with the normal login screen for beehiveonline, however the system does not work in the expected way and you will get an error and a redirect to http://beehiveonline.oracle.com:443/comb/v1/d/jsso?appurl=https%3A%2F%2Fbeehiveonline.oracle.com%2Fcomb%2Fv1%2Fd%2Fmy%2Fuser

If this happens then go to https://beehiveonline.oracle.com/comb/v1/s/burl.html and log in as normal. This will present a test harness for the calls and you can call the /comb/v1/d/my/user from there - making sure you change the HTTP Method to Get.

burlPage.png

The command will return a page full of xml with all the information you would need to navigate to your physical entities of groups and personal and team workspaces and other property based assets like your presence, the roles you have and preferences for your account.

burlPageOutput.PNG

 

This provides all the starting ids for the object you are associated with, such as your Personal Workspace:

"personalWorkspace": {
   "deleted": false,
   "collabId": {
     "beeType": "beeId",
     "resourceType": "wspr",
    "id": "334B:3BF0:wspr:97F82F8445F94BE8BCEA06D446E9276A000000000227"
   },
  "beeType": "personalWorkspace",
  "shortWorkspaceId": 0
}

The id 334B:3BF0:wspr:97F82F8445F94BE8BCEA06D446E9276A000000000227 can be used in subsequent calls to get more detail about the Personal Workspace - such as the default INBOX to get the email ids etc.

The key to the RESTful BDK is the ability to walk a tree of object ids to obtain the necessary information, such as using the user info to get the workspace id and then using this id to get the INBOX id etc. The amount of information returned can be controlled via the use of projections, e.g. EMPTY which will return between minimal information to FULL which will return more details - there are a range of Projectiosn available so you should tailor your calls to return the minimum amount of informattion you require to prevent wasted time. The projections can be found in the https://beehiveonline.oracle.com/comb/v1/docs area for each call, the values for the my/user call are shown below:

projectionDetails.PNG

The call may return multiple entries for a particular entity type - team workspaces and groups are all likely to be multiple entities and the code - whatever language is used - should make sure that the returned list is accessed in the correct way.

I will upload some sample code to assist getting started in later Blog entries.