Hi Devs, I have come up with the REST URI scheme for the Person and relationship related Social concepts. I used the PhotArk REST API [0] and the OpenSocial REST API [1] as references for this purpose.
The following are my initial thoughts. You feedback & suggestions are welcomed. (1) Get a Person REST-HTTP-Method = "GET" REST-URI-Fragment = /people/{userId}/@self (2) Get a Person's friends REST-HTTP-Method = "GET" REST-URI-Fragment = /people/{userId}/@friends (3) Get all Persons REST-HTTP-Method = "GET" REST-URI-Fragment = /people (4) Update a Person REST-HTTP-Method = "POST" REST-URI-Fragment = /people/{userId} (5) Delete a person REST-HTTP-Method = "DELETE" REST-URI-Fragment = /people/{userId} (6) Create a Relationship request REST-HTTP-Method = "POST" REST-URI-Fragment = "/people/realtionship/{ownerId}/{viewerId} (7) Create a Relationship REST-HTTP-Method = "POST" REST-URI-Fragment = "/people/relationship/{ownerId}/{viewerId} (8) Get Relationship between two users REST-HTTP-Method = "GET" REST-URI-Fragment = "/people/relationship/{ownerId}/{viewerId} (9) Remove Relationship between two users REST-HTTP-Method = "DELETE" REST-URI-Fragment = "/people/realtionship/{ownerId}/{viewerId} [0] https://cwiki.apache.org/PHOTARKxWIKI/photark-rest-api.html [1] http://opensocial-resources.googlecode.com/svn/spec/1.1/Social-API-Server.xml#People-Service Thanks, ~Umashanthi On Sat, Jul 9, 2011 at 9:47 PM, Umashanthi Pavalanathan < umashant...@gmail.com> wrote: > > > On Sat, Jul 9, 2011 at 9:42 PM, Luciano Resende <luckbr1...@gmail.com>wrote: > >> On Fri, Jul 8, 2011 at 3:58 AM, Umashanthi Pavalanathan >> <umashant...@gmail.com> wrote: >> > Hi Devs, >> > >> > As you know I am working on adding social features to PhotArk in the >> rest >> > branch. >> > To proceed further with the implementation, I have to add the social >> > features in the UI. When working on this, I came across the requirement >> of >> > exposing the back-end functionalities as REST services. As you know, >> > implementation in the trunk uses Apache Tuscany to integrate and expose >> the >> > functionality as JSON-RPC. Similarly in the rest branch we have the >> > requirement of exposing the back-end functionality as REST services. For >> > this purpose, I looked into three options: >> > (1) Apache Shindig [0] >> > (2) Apache Tuscany [1] >> > (3) Apache Wookie [2] >> > >> > As we have discussed earlier in the mailing list [3], Apache Shindig >> > provides a reference implementation for the OpenSocial specification and >> > provide JSON-RPC & REST APIs. But these APIs are only limited to the >> > concepts/services in the OpenSocial specification and currently there >> seems >> > to be no plans for extending further. So, using Apache Shindig, we can >> > integrate the back-end social features as REST services; but it is only >> > limited to this purpose. Since in the context of PhotArk, there are >> several >> > other functionalities/concepts like Albums, etc, using Shindig will not >> > cater for all the requirements. >> > >> > On the other hand, Apache Tuscany, can be used to expose the >> functionalities >> > as REST services without any limitations and it's usage in the PhotArk >> trunk >> > assures that it can satisfy all the requirements in PhotArk. >> > >> > Apaceh Wookie also provides REST API. But it is particularly designed to >> > facilitate building widgets. Similar to Shindig, Wookie also has limited >> > support for converting all the functionalities in PhotArk into REST >> > services. Even though Wookie has the support for UI widgets, I do not >> see >> > any plans to make PhotArk as a widget based application in the near >> future. >> > So the REST integration facility provided by Wookie is limited in the >> > context of PhotArk. >> > >> > After analyzing these three options, Apache Tuscany seems to be >> promising >> > for me, to support all the requirements of PhotArk, related to exposing >> REST >> > services. >> > >> > I kindly invite you all to proceed further with this discussion. Your >> > valuable input to this discussion is highly appreciated. >> > >> > Looking forward to hear from you all. >> > >> > >> > [0] http://shindig.apache.org/ >> > [1] http://tuscany.apache.org/ >> > [2] http://incubator.apache.org/wookie/ >> > [3] >> > >> http://www.mail-archive.com/photark-dev@incubator.apache.org/msg01141.html >> > >> > Thanks, >> > ~Umashanthi >> > >> >> I had the impression that the integration with Apache Shindig would >> provide us much more benefits, but after some investigation I don't >> believe that is true anymore. A REST interface based on Tuscany should >> give us enough to build a solid social ui. Having said that, we might >> look at the URI defined by Shindig/OpenSocial to see if we can follow >> the same standard which would be beneficial for any future >> integration. >> > > +1. > Since Tuscany has the flexibility in defining the URI (please correct me if > I am wrong), I think we can incorporate the OpenSocial URI standards for our > services. > > > Thanks, > ~Umashanthi > > > >> >> >> -- >> >> Luciano Resende >> http://people.apache.org/~lresende >> http://twitter.com/lresende1975 >> http://lresende.blogspot.com/ >> > >