.. Licensed under the Apache License, Version 2.0 (the "License"); you may not .. use this file except in compliance with the License. You may obtain a copy of .. the License at .. .. http://www.apache.org/licenses/LICENSE-2.0 .. .. Unless required by applicable law or agreed to in writing, software .. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT .. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the .. License for the specific language governing permissions and limitations under .. the License. .. _api/ddoc/show: ===================================== ``/{db}/_design/{ddoc}/_show/{func}`` ===================================== .. warning:: Show functions are deprecated in CouchDB 3.0, and will be removed in CouchDB 4.0. .. http:get:: /{db}/_design/{ddoc}/_show/{func} :synopsis: Executes a show function against null document .. http:post:: /{db}/_design/{ddoc}/_show/{func} :synopsis: Same as GET method for the related endpoint Applies :ref:`show function ` for ``null`` document. The request and response parameters are depended upon function implementation. :param db: Database name :param ddoc: Design document name :param func: Show function name :>header ETag: Response signature :query string format: Format of the returned response. Used by :js:func:`provides` function :code 200: Request completed successfully :code 500: Query server error **Function**: .. code-block:: javascript function(doc, req) { if (!doc) { return {body: "no doc"} } else { return {body: doc.description} } } **Request**: .. code-block:: http GET /recipes/_design/recipe/_show/description HTTP/1.1 Accept: application/json Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Content-Length: 6 Content-Type: text/html; charset=utf-8 Date: Wed, 21 Aug 2013 12:34:07 GMT Etag: "7Z2TO7FPEMZ0F4GH0RJCRIOAU" Server: CouchDB (Erlang/OTP) Vary: Accept no doc .. _api/ddoc/show/id: ============================================= ``/{db}/_design/{ddoc}/_show/{func}/{docid}`` ============================================= .. warning:: Show functions are deprecated in CouchDB 3.0, and will be removed in CouchDB 4.0. .. http:get:: /{db}/_design/{ddoc}/_show/{func}/{docid} :synopsis: Executes a show function against the specified document .. http:post:: /{db}/_design/{ddoc}/_show/{func}/{docid} :synopsis: Same as GET method for the related endpoint Applies :ref:`show function ` for the specified document. The request and response parameters are depended upon function implementation. :param db: Database name :param ddoc: Design document name :param func: Show function name :param docid: Document ID :>header ETag: Response signature :query string format: Format of the returned response. Used by :js:func:`provides` function :code 200: Request completed successfully :code 500: Query server error **Function**: .. code-block:: javascript function(doc, req) { if (!doc) { return {body: "no doc"} } else { return {body: doc.description} } } **Request**: .. code-block:: http GET /recipes/_design/recipe/_show/description/SpaghettiWithMeatballs HTTP/1.1 Accept: application/json Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Content-Length: 88 Content-Type: text/html; charset=utf-8 Date: Wed, 21 Aug 2013 12:38:08 GMT Etag: "8IEBO8103EI98HDZL5Z4I1T0C" Server: CouchDB (Erlang/OTP) Vary: Accept An Italian-American dish that usually consists of spaghetti, tomato sauce and meatballs. .. _api/ddoc/list: ============================================ ``/{db}/_design/{ddoc}/_list/{func}/{view}`` ============================================ .. warning:: List functions are deprecated in CouchDB 3.0, and will be removed in CouchDB 4.0. .. http:get:: /{db}/_design/{ddoc}/_list/{func}/{view} :synopsis: Executes a list function against the view from the same design document .. http:post:: /{db}/_design/{ddoc}/_list/{func}/{view} :synopsis: Same as GET method for the related endpoint Applies :ref:`list function ` for the :ref:`view function ` from the same design document. The request and response parameters are depended upon function implementation. :param db: Database name :param ddoc: Design document name :param func: List function name :param view: View function name :>header ETag: Response signature :>header Transfer-Encoding: ``chunked`` :query string format: Format of the returned response. Used by :js:func:`provides` function :code 200: Request completed successfully :code 500: Query server error **Function**: .. code-block:: javascript function(head, req) { var row = getRow(); if (!row){ return 'no ingredients' } send(row.key); while(row=getRow()){ send(', ' + row.key); } } **Request**: .. code-block:: http GET /recipes/_design/recipe/_list/ingredients/by_name HTTP/1.1 Accept: text/plain Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Wed, 21 Aug 2013 12:49:15 GMT Etag: "D52L2M1TKQYDD1Y8MEYJR8C84" Server: CouchDB (Erlang/OTP) Transfer-Encoding: chunked Vary: Accept meatballs, spaghetti, tomato sauce .. _api/ddoc/list/ddoc: ========================================================= ``/{db}/_design/{ddoc}/_list/{func}/{other-ddoc}/{view}`` ========================================================= .. warning:: List functions are deprecated in CouchDB 3.0, and will be removed in CouchDB 4.0. .. http:get:: /{db}/_design/{ddoc}/_list/{func}/{other-ddoc}/{view} :synopsis: Executes a list function against the view from other design document .. http:post:: /{db}/_design/{ddoc}/_list/{func}/{other-ddoc}/{view} :synopsis: Same as GET method for the related endpoint Applies :ref:`list function ` for the :ref:`view function ` from the other design document. The request and response parameters are depended upon function implementation. :param db: Database name :param ddoc: Design document name :param func: List function name :param other-ddoc: Other design document name that holds view function :param view: View function name :>header ETag: Response signature :>header Transfer-Encoding: ``chunked`` :query string format: Format of the returned response. Used by :js:func:`provides` function :code 200: Request completed successfully :code 500: Query server error **Function**: .. code-block:: javascript function(head, req) { var row = getRow(); if (!row){ return 'no ingredients' } send(row.key); while(row=getRow()){ send(', ' + row.key); } } **Request**: .. code-block:: http GET /recipes/_design/ingredient/_list/ingredients/recipe/by_ingredient?key="spaghetti" HTTP/1.1 Accept: text/plain Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Wed, 21 Aug 2013 12:49:15 GMT Etag: "5L0975X493R0FB5Z3043POZHD" Server: CouchDB (Erlang/OTP) Transfer-Encoding: chunked Vary: Accept spaghetti .. _api/ddoc/update: ======================================= ``/{db}/_design/{ddoc}/_update/{func}`` ======================================= .. http:post:: /{db}/_design/{ddoc}/_update/{func} :synopsis: Executes an update function against the null document Executes :ref:`update function ` on server side for ``null`` document. :param db: Database name :param ddoc: Design document name :param func: Update function name :>header X-Couch-Id: Created/updated document's ID :>header X-Couch-Update-NewRev: Created/updated document's revision :code 200: No document was created or updated :code 201: Document was created or updated :code 500: Query server error **Function**: .. code-block:: javascript function(doc, req) { if (!doc){ return [null, {'code': 400, 'json': {'error': 'missed', 'reason': 'no document to update'}}] } else { doc.ingredients.push(req.body); return [doc, {'json': {'status': 'ok'}}]; } } **Request**: .. code-block:: http POST /recipes/_design/recipe/_update/ingredients HTTP/1.1 Accept: application/json Content-Length: 10 Content-Type: application/json Host: localhost:5984 "something" **Response**: .. code-block:: http HTTP/1.1 404 Object Not Found Cache-Control: must-revalidate Content-Length: 52 Content-Type: application/json Date: Wed, 21 Aug 2013 14:00:58 GMT Server: CouchDB (Erlang/OTP) { "error": "missed", "reason": "no document to update" } .. _api/ddoc/update/id: =============================================== ``/{db}/_design/{ddoc}/_update/{func}/{docid}`` =============================================== .. http:put:: /{db}/_design/{ddoc}/_update/{func}/{docid} :synopsis: Executes an update function against the specified document Executes :ref:`update function ` on server side for the specified document. :param db: Database name :param ddoc: Design document name :param func: Update function name :param docid: Document ID :>header X-Couch-Id: Created/updated document's ID :>header X-Couch-Update-NewRev: Created/updated document's revision :code 200: No document was created or updated :code 201: Document was created or updated :code 500: Query server error **Function**: .. code-block:: javascript function(doc, req) { if (!doc){ return [null, {'code': 400, 'json': {'error': 'missed', 'reason': 'no document to update'}}] } else { doc.ingredients.push(req.body); return [doc, {'json': {'status': 'ok'}}]; } } **Request**: .. code-block:: http PUT /recipes/_design/recipe/_update/ingredients/SpaghettiWithMeatballs HTTP/1.1 Accept: application/json Content-Length: 5 Content-Type: application/json Host: localhost:5984 "love" **Response**: .. code-block:: http HTTP/1.1 201 Created Cache-Control: must-revalidate Content-Length: 16 Content-Type: application/json Date: Wed, 21 Aug 2013 14:11:34 GMT Server: CouchDB (Erlang/OTP) X-Couch-Id: SpaghettiWithMeatballs X-Couch-Update-NewRev: 12-a5e099df5720988dae90c8b664496baf { "status": "ok" }