On Apr 21, 2009, at 10:52 AM, Chris Anderson wrote:
...
This seems like an awful lot of special case weirdness, and there are
probably more edge cases than you've identified so far. And this only
addresses attachments -- there were some interesting ideas posed on
the list
some time back about how to do unobtrusive form handling, but there
were
still were some oddities, particularly around strings vs. numbers and
deeply-nested objects.
I know this is sacrilege, but wouldn't this be best handled by action
servers?
This is the way to go. Not action servers exactly, but an update
handler, for JavaScript which can translate a Req to JSON for PUT.
Patches welcome or I'll get to it eventually.
Of course, you could always bury a form handler in a wsgi or rack
app or whatever (even a jack app in js) as an _external, but
obviously
that's not very portable. Baking action servers into couch is the
only sane
way to solve this problem for something like couchapps (a jsonp
service is
out of the question for write ops). And it shouldn't be any trouble
with
sharding.
So maybe action server is the wrong word, and I know it could
totally get
abused (hell, I *know *I would abuse it), but wouldn't it be great
if form
handling could be embedded in design docs with all the other app
logic?
Is there an open bug report for "action server" or "update handler" or
any previous discussions. I searched JIRA and didn't see it, but the
terms were generic enough that they matched many entries.
I was trying to avoid specifying any implementation details, just the
requirements to fill a big functionality hole for pure CouchApps that
could not be handled browser side. Would be great if it could be
handled by something generic.
Eventually I will need to address this either by trying my first
attempt to hack Erlang or by adding an intermediary layer and abandon
being a CouchApp. Would appreciate any advice if I need roll my own
solution. Not urgent at the moment, but eventually my client will
want to see it and I'll be forced to find a solution.