incubator-photark-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Umashanthi Pavalanathan <umashant...@gmail.com>
Subject Re: REST integration for back-end functionality in photark-rest branch
Date Thu, 21 Jul 2011 05:56:56 GMT
Hi Devs,

On Tue, Jul 12, 2011 at 2:33 AM, Umashanthi Pavalanathan <
umashanthip@gmail.com> wrote:

>
>
> On Mon, Jul 11, 2011 at 9:56 AM, Umashanthi Pavalanathan <
> umashanthip@gmail.com> 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 <
>> umashanthip@gmail.com> wrote:
>>
>>>
>>>
>>> On Sat, Jul 9, 2011 at 9:42 PM, Luciano Resende <luckbr1975@gmail.com>wrote:
>>>
>>>> On Fri, Jul 8, 2011 at 3:58 AM, Umashanthi Pavalanathan
>>>> <umashanthip@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/
>>>>
>>>
>>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message