Today, I'm going to wrap up the summary of the Project SocialSite Web Services that I started in Part 1 of this series. I'll cover the new APIs we've added for managing Gadgets, for Messaging and for Search. These are not quite as solid as the other services I've covered; they're still in-flux and under development.

Gadget installation and management

When you add the Project SocialSite Gadetizer Widget to your site, you give your end-users get the ability to install OpenSocial Gadgets. To support this, whe Gadgetizer Widget needs to be able to get the list of Gadgets available for install, get the list of Gadgets that each user has installed, install Gadget and uninstall Gadgets. Since those features are no supported in the standard OpenSocial APIs, we added them as SocialSite extensions. Below are the Gadget installation and management URIs we support; you can probably tell that there are some missing pieces to this puzzle that we're still working on.

Gadgets /gadgets/@all/{searchString} Gadgets GET - all gadgets available in the system, with optional search string /gadgets/@user/{userId}/{destination} Gadgets GET - all user's installed gadgets, (optionally) within a destination /gadgets/@user/{userId}/{destination} Gadget POST - install a gadget for user in a specific destination /gadgets/@group/{groupId}/{destination} Gadget GET - all group's installed gadgets, (optionally) within a destination

/gadgets/@group/{groupId}/{destination} Gadget POST - install a gadget for group in a specific destination



Messaging

Messaging is included in OpenSocial, but it did not completely meet our needs so we're working with the OpenSocial community to adjust the specification and with the Apache Shindig community to create an open source implementation. Here are the messaging URIs we are working on:

Messages /messages/{userId}/{box}/ Messages GET - messages for box 'inbox' or 'outbox'

POST - to 'outbox' to send a new message /messages/{userId}/{box}/{messageId} Message GET - get specific message from 'inbox' or 'outbox'



Search

And finally, there's search. The SocialSite Widgets must provide the ability to search people, groups and gadgets so we've added an API for searching those as well.

Search /search/{searchString}/{type} List of Persons, Groups or Gadgets GET - search results for type gadget, group or profile

In Part 3, I'll cover the corresponding JavaScript APIs. After that, in parts 4 and 5, I'll provide some examples that show how to use the REST, JSON-RPC and JavasScript flavors of our APIs.