Hi Devs, On Tue, Jul 12, 2011 at 2:33 AM, Umashanthi Pavalanathan < [email protected]> wrote:
> > > On Mon, Jul 11, 2011 at 9:56 AM, Umashanthi Pavalanathan < > [email protected]> wrote: > >> 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} >> >> > correction: > Update a Person > REST-HTTP-Method = "PUT" > 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} >> >> I have come up with the URI scheme for Activity and AppData related concepts. I would like to get your feedback & suggestions regarding this so that I can proceed with the REST-integration of ActivityService and AppDataService. *Activity Related Operations:* (1) Save an Activity REST-HTTP-Method = "POST" REST-URI-Fragment = /people/{userId}/activities (2) Create an Activity REST-HTTP-Method = "GET" REST-URI-Fragment = /people/{userId}/activities (3) Update an Activity REST-HTTP-Method = "PUT" REST-URI-Fragment = /people/{userId}/activities (4) Delete an Activity REST-HTTP-Method = "DELETE" REST-URI-Fragment = people/{userId}/activities/{activityId} (5) Get an Activity REST-HTTP-Method = "GET" REST-URI-Fragment = /people/{userId}/activities/{activityId} (6) Get Activities for given activity IDs with optional filters (7) Get Activities for given user IDs with optional filters *AppData Related Operations:* (1) Get AppData REST-HTTP-Method = "GET" REST-URI-Fragment = /people/{userId}/appdata/{appId} (2) Create AppData REST-HTTP-Method = "POST" REST-URI-Fragment = /people/{userId}/appdata/{appId} (3) Update AppData REST-HTTP-Method = "PUT" REST-URI-Fragment = /people/{userId}/appdata/{appId} (4) Delete AppData REST-HTTP-Method = "DELETE" REST-URI-Fragment = /people/{userId}/appdata/{appId} Thanks, ~Umashanthi > >> >> [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 < >> [email protected]> wrote: >> >>> >>> >>> On Sat, Jul 9, 2011 at 9:42 PM, Luciano Resende <[email protected]>wrote: >>> >>>> On Fri, Jul 8, 2011 at 3:58 AM, Umashanthi Pavalanathan >>>> <[email protected]> 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/[email protected]/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/ >>>> >>> >>> >> >
