[Seaside] Seaside and REST
Michael Roberts
mike at mjr104.co.uk
Wed May 2 23:44:20 UTC 2007
ok, so if you see my other post I'm clearly missing something.
I don't dispute that we might need some new features, but I don't see
that what you have said is an answer to Nevin's question. For me
you've answered a different question.
Whether Seaside's REST support is stateless or minimal or not does
not prevent the current API from doing bookmarking. It sounds like
you have a different goal?
Thanks,
Mike
On 2 May 2007, at 21:31, Todd Blanchard wrote:
> Definitely need both.
>
> WebObjects had regular stateful urls but they also added
> DirectActions (stateless urls - minimal handling) for doing RESTful
> stuff.
> Seaside needs something similar.
>
>
> On Wednesday, May 02, 2007, at 10:06AM, "Nevin Pratt"
> <nevin at bountifulbaby.com> wrote:
>> I know that Seaside and REST have been discussed before. For
>> example,
>> on 4/8/05, Cees wrote the following:
>>
>>> I've been thinking for some time that it should be possible,
>>> somehow,
>>> to merge HttpView and Seaside into a 'seamless' web application.
>>> HttpView could do REST-style 'static' stuff, Seaside would pick up
>>> where more interaction is needed. Both support essentially the same
>>> style of HTML generation, so that shouldn't be a large chasm to
>>> cross.
>>>
>>> For example, a Wiki would use HV to display pages, as soon as you
>>> press the Edit button you go into a Seaside session (of course, the
>>> trick is that the next time you press the Edit button, you may
>>> want to
>>> go into the *same* Seaside session - stuff like that needs to be
>>> checked when integrating them). This is a very simple example, but I
>>> think it's one of the things necessary to optimize things.
>>> Kicking off
>>> the whole Seaside machinery for essentially static pages is just
>>> a bit
>>> too much, I think.
>>
>> The problem with Cees' approach is that it is Squeak-specific. What
>> about folks that want to try the GemStone/Seaside version? That
>> is what
>> I would like to do.
>>
>> Many years ago I hand-spun my own approach for RESTful URL's in
>> Squeak. My approach involved inserting an element in the URL,
>> like this:
>>
>> http://www.bountifulbaby.com/seaside/seasideappentrypoint/selector
>>
>> Of course, 'seasideappentrypoint' is simply the entry point
>> defined in
>> the Seaside config page, and selector is simply a method name-- it
>> means
>> execute that method on the entry point app component. This allows
>> relatively arbitrary app entry points, like this:
>>
>> http://www.bountifulbaby.com/seaside/index/home (executes the #home
>> method of the component, which has been written to cause it to
>> show the
>> home page)
>> or
>> http://www.bountifulbaby.com/seaside/index/aboutus (executes the
>> #aboutus method of the component, which has been written to cause
>> it to
>> show the "About Us" page)
>>
>> So you can see, I can actually start the app at an arbitrary
>> point, by
>> specifying the method name to execute as part of the URL (security is
>> handled by requiring that the method name be present in the component
>> under a specific and known method category name-- this stops
>> people from
>> being able to execute completely arbitrary methods via the URL,
>> because
>> the method to execute must be present in a specific method category).
>>
>> This approach also gives me bookmarkable URL's, because, for
>> example, a
>> URL like this:
>>
>>
>> http://www.bountifulbaby.com/seaside/index/aboutus/
>> @XxPZklzXRHVKPvCA/zHJLMslu
>>
>> Converts back to this once the session expires:
>>
>> http://www.bountifulbaby.com/seaside/index/aboutus
>>
>> And they will both show the "About Us" page. So, if somebody
>> bookmarked
>> the first one while running the app, the bookmark would work just
>> fine,
>> even after the session expired.
>>
>> The problem with my approach, though, is that it required me to muck
>> around with some of the Seaside base code. And this, in turn, has
>> locked me into an older version of Seaside (unless I also port my
>> mods).
>>
>> Now that I am considering GemStone/Seaside, I would like to redo my
>> ideas for bookmarkable URL's, and come up with something that fits in
>> better with the existing Seaside framework.
>>
>> Surely there must be some advances within the newer versions of
>> Seaside
>> which make all of my older hacks unnecessary? What are they?
>>
>> Nevin
>>
>>
>>
>>
>>
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the Seaside
mailing list