Getting design doc information

Getting design doc information

To retrieve a design document, use the GET /bucket/_design/[ddoc-name] HTTP method and URI on the 8092 port.

Description

To obtain an existing design document from a bucket, use the 8092 port and GET /bucket/_design/[ddoc-name] HTTP method URI ending with the design document name.

To retrieve all design documents in a cluster use the 8091 port with the /pools/default/buckets/[bucket-name]/ddocs URI.

HTTP method and URI

To retrieve all the design documents with views defined on a bucket:

GET /bucket/_design/[ddoc-name]
Request Data Design document definition (JSON)
Response Data Success and stored design document ID
Authentication Required optional

Parameters:

Syntax

Curl request syntax:

curl -u [admin]:[password] -X GET 
  http://[localhost]:8092/[bucket-name]/_design/[ddoc-name]
Note: HTTP response header includes a JSON document containing the metadata about the design document being accessed. The information is returned within the X-Couchbase-Meta header of the returned data. This information is retrieved by using the -v option to the curl command.

To get design document information from the cluster, the following request is made on the 8091 port.

curl -u [admin]:[password] -X GET 
  http://[localhost]:8091/pools/default/buckets/[bucket-name]/ddocs

Examples

Curl request example:

Important: To retrieve design doc information, the request must be made on the 8092 port.

To get the existing design document from the bucket test2 for the development design document ruth and the view ruthView

curl -u Administrator:password -X GET 
  http://10.5.2.117:8092/test2/_design/dev_ruth

To get design document information from the cluster, the request must be made on the 8091 port.

curl -u Administrator:password -X GET 
  http://10.5.2.117:8091/pools/default/buckets/test2/ddocs

Response

Response for the following response on the bucket test2 and the development design doc dev_ruth . The design document is empty because no data was added.

curl -u Administrator:password -X GET 
  http://10.5.2.117:8092/test2/_design/dev_ruth
{
    "views": {
        "ruthView": {
            "map": "function (doc, meta) {\n  emit(meta.id, null);\n}"
        }
    }
}

Response for the following request on the bucket test2 .

curl -u Administrator:password -X GET 
  http://10.5.2.117:8091/pools/default/buckets/test2/ddocs
{
    "rows": [
        {
            "controllers": {
                "compact": "/pools/default/buckets/test2/ddocs/_design%2Fdev_ruth/controller/compactView", 
                "setUpdateMinChanges": "/pools/default/buckets/test2/ddocs/_design%2Fdev_ruth/controller/setUpdateMinChanges"
            }, 
            "doc": {
                "json": {
                    "views": {
                        "ruthView": {
                            "map": "function (doc, meta) {\n  emit(meta.id, null);\n}"
                        }
                    }
                }, 
                "meta": {
                    "id": "_design/dev_ruth", 
                    "rev": "1-9bdf8353"
                }
            }
        }
    ]
}
      

The following response shows that the metadata matches the corresponding metadata for a data document.


      * About to connect() to 192.168.0.77 port 8092 (#0)
      *   Trying 192.168.0.77...
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
      Dload  Upload   Total   Spent    Left  Speed
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* connected
      * Connected to 192.168.0.77 (192.168.0.77) port 8092 (#0)
      * Server auth using Basic with user 'Administrator'
      > GET /sales/_design/something HTTP/1.1
      > Authorization: Basic QWRtaW5pc3RyYXRvcjpUYW1zaW4=
      > User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
      > Host: 192.168.0.77:8092
      > Accept: */*
      > Content-Type: application/json
      >
      < HTTP/1.1 200 OK
      < X-Couchbase-Meta: {"id":"_design/dev_sample","rev":"5-2785ea87","type":"json"}
      < Server: MochiWeb/1.0 (Any of you quaids got a smint?)
      < Date: Mon, 13 Aug 2012 10:45:46 GMT
      < Content-Type: application/json
      < Content-Length: 159
      < Cache-Control: must-revalidate
      <
      { [data not shown]
      100   159  100   159    0     0  41930      0 --:--:-- --:--:-- --:--:-- 53000
      * Connection #0 to host 192.168.0.77 left intact
      * Closing connection #0
      

If the view does not exist, the following error is returned:

{
   "error":"not_found",
   "reason":"missing"
}

Response codes

Response codes Description
200 Request completed successfully.
401 The item requested was not available using the supplied authorization, or authorization was not supplied.
404 The requested content could not be found. The returned content includes further information, as a JSON object, if available.