Design of REST interface to Couchbase NGINX module

Version 14 by avsej
on Sep 30, 2013 13:30.

compared with
Version 15 by avsej
on Oct 01, 2013 07:41.

This line was removed.
This word was removed. This word was added.
This line was added.

Changes (3)

View Page History
This document describes the REST API exposed to access Couchbase

What it doesn't describe:
{note:title=Open Questions}
* Expose documents and views APIs through the same HTTP socket.
** Let people operate on two endpoints separately and optionally map them to the endpoints they want. It will be the most natural way with nginx, where everything built around {{location}} entity.
** Develop some standard schema prefixes like {{_doc/}} and {{_design}}, to allow to reference them, but here is another question "do we need to inject prefix in all places, like view results?"
* Represent document keys so that they could be passed in URI. Urlencoding is quite common, but in views the server is using base64
* Unlike memcache protocol, it should also encode bodies of the documents somehow, therefore MIME support. How we should do it?
* [low priority] Evaluate what we need to support CouchApp-like deployment:
** authentication and authorization!
** proxy to syncgateway instead to raw couchbase?
** new API to store attachments somewhere
** additional useful APIs, like lists (can be done with multi-get)

* auth scheme, on this step you might only protect your API endpoint
using nginx built-in means

There are several terms we are using while describing this API.