In spirit of building a dreamcode API, I think providing some higher level abstractions aren’t bad, but they must be consistent – and follow REST verbs. I’d really urge to take a look couchdb, which does that in an excellent manner.
I have to say, I still haven’t quite grasped, why we need to have the handleID
exposed through the REST in the first place. Is it really that we have an open file handler in the backend/server side “open”? What does “open” mean in this case? Is there a lock around it or anything? Do we have a seeking position we keep track of? How?
The problem I have with it, is that it makes the REST-system super stateful all of the sudden. And I am wondering if we aren’t better off with an actual Resource-oriented interface and just use HTTP-Headers to provide specifying the wanted Version or seeking (through HTTP-Ranges) rather than keeping a stateful handlerId around…
I’ll ponder about this a bit more – I have limited concentration capacity at the moment .
I did so here: RFC 41 – Low Level API - #9 by ben