Actually no not completely.

There is a setting in shindig/config/container.js that's called useRest : {true,false}, setting that to true will make it use the restful interface.

Then it depends on the REST implementation you want to use to what you should set the social data url, for PHP Shindig it's /social/rest, for Java + Abdera it's /social/rest, for Java + implementation that might (or might not) become the default one, it's /social/jsonrest.

After that it doesn't matter if the gadget talks opensocial 0.7 or 0.8 ... either way they'll talk to the rest interface w that configuration.

        -- Chris

On Jul 14, 2008, at 10:30 PM, Erel Segal wrote:

Thank you very much. Let's see if I get this right:

If I run a gadget written for OpenSocial 0.7, then the GadgetDataServlet
class will be used;
If I run a gadget written for OpenSocial 0.8, then the RestServlet class
will be used.

I found 3 sample gadgets that require OpenSocial 0.7 - all are in
\shindig\javascript\samplecontainer\examples:
SocialHelloWorld.xml, SocialActivitiesWorld.xml, getFriendsHasApp.xml

If I run them on my server, will I be able to see that the GadgetDataServlet
class is used?

Are there any sample gadgets that require OpenSocial 0.8?

Efrel


2008/7/3, David Primmer <[EMAIL PROTECTED]>:

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