I think there are previous posts about this issue somewhere on this
list. There is no current global picture. It's kinda hard to write
global pictures and keep them updated when stuff changes so fast. This
is a pain for people who just want to use the latest and greatest and
I think this is just the way it goes.

Anybody want to jump in and clarify, please do. Cassie is probably
best suited to this task but she's on vacation for a few more days.

Currently there are 3 different wireformat/apis served by the stuff in
java/social-api and, I think 4 different codebases that do different
parts of those formats.

- one is the gadgets server to api server back channel rpc system that
allows a gadget server to manage the persisted info about it. it's
doing operations on data that is not part of the social data model,
but just container specific utility functions.

- two is what we've affectionately called 'casse wire protocol' which
is getting the request in postdata

- three is the 0.8 Restful API spec wire format.


Of these, there are different servlets covering some or all of them.

RestServerServlet handles case one and three.

GadgetDataServlet, I believe handles case one and two.

DataServiceServlet, I think handles only case three. and only in json.

The eventual goal is to handle case one and three. I don't know if the
wire format or protocol of case one is going to be updated any time
soon. It's sorta shindig-specific and I don't know how much it is
used. I've only seen the code under RestServerServlet (abdera) that
does stuff like 'doevil' with 'setEvilness'. I'm clueless about it.

There are other code branches mixed in here as well that are not
necessarily tied to a specific servlet.
social/dataservice/DataServiceServlet has a new json-only
implementation recently contributed by cassie and doesn't use abdera
at all and has some new data interaction. I have a patch that is not
committed that uses some of cassie's work but keeps the abdera servlet
and routing system. Things are branching as we're evaluating
implementation strategies. The dual nature of RESTful spec has many
confounded. We'll be working this stuff out in the coming weeks and
hopefully begin to purge earlier experiments from the code. Right now,
we're leaving them in.

Ok. so there's your summary until the next time someone asks.

davep


On Thu, Jul 3, 2008 at 11:54 AM, Erel Segal <[EMAIL PROTECTED]> wrote:
> RestServlet and GadgetDataServlet apparently do similar actions: they get
> requests for social-network data (about people, personal data or activities)
> and return responses. There are several noticeable technical differences,
> such as:
>  * RestServlet is used for URLs such as "
> http://myserver.com/social/rest/people/...";, "
> http://myserver.com//social/rest/activities/...";, "
> http://myserver.com//social/rest/appdata/...";, and takes the input from the
> URL, while GadgetDataServlet is used for URLs such as "
> http://myserver.com//social/data..."; and takes the input from the
> $_POST['request'] parameter.
>
>
> However, I would like to know the functional place of each servlet in the
> global picture. Why are they both needed?
>
> I read the excellent documentation by Rajdeep:
> http://rajdeep.dua.googlepages.com/shindigPHP-overview-tidy_img.html
> but it doesn't relate to RestServlet.
>
> Thanks for the explanation!
>

Reply via email to