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]
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:
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. |