| .. 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-misc: |
| |
| ===================== |
| Miscellaneous Methods |
| ===================== |
| |
| The CouchDB Miscellaneous interface provides the basic interface to a |
| CouchDB server for obtaining CouchDB information and getting and setting |
| configuration information. |
| |
| A list of the available methods and URL paths are provided below: |
| |
| +--------+-------------------------+-------------------------------------------+ |
| | Method | Path | Description | |
| +========+=========================+===========================================+ |
| | GET | / | Get the welcome message and version | |
| | | | information | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /_active_tasks | Obtain a list of the tasks running in the| |
| | | | server | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /_all_dbs | Get a list of all the DBs | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /_db_updates | A feed of database events | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /_log | Return the server log file | |
| +--------+-------------------------+-------------------------------------------+ |
| | POST | /_replicate | Set or cancel replication | |
| +--------+-------------------------+-------------------------------------------+ |
| | POST | /_restart | Restart the server | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /_stats | Return server statistics | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /_utils | CouchDB administration interface (Futon) | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /_uuids | Get generated UUIDs from the server | |
| +--------+-------------------------+-------------------------------------------+ |
| | GET | /favicon.ico | Get the site icon | |
| +--------+-------------------------+-------------------------------------------+ |
| |
| ``GET /`` |
| ========= |
| |
| * **Method**: ``GET /`` |
| * **Request**: None |
| * **Response**: Welcome message and version |
| * **Admin Privileges Required**: no |
| * **Return Codes**: |
| |
| * **200**: |
| Request completed successfully. |
| |
| Accessing the root of a CouchDB instance returns meta information about |
| the instance. The response is a JSON structure containing information |
| about the server, including a welcome message and the version of the |
| server. |
| |
| .. code-block:: javascript |
| |
| { |
| "couchdb" : "Welcome", |
| "version" : "1.0.1" |
| } |
| |
| .. _active-tasks: |
| |
| ``GET /_active_tasks`` |
| ====================== |
| |
| * **Method**: ``GET /_active_tasks`` |
| * **Request**: None |
| * **Response**: List of running tasks, including the task type, name, status |
| and process ID |
| * **Admin Privileges Required**: yes |
| * **Return Codes**: |
| |
| * **200**: |
| Request completed successfully. |
| |
| You can obtain a list of active tasks by using the ``/_active_tasks`` |
| URL. The result is a JSON array of the currently running tasks, with |
| each task being described with a single object. For example: |
| |
| .. code-block:: javascript |
| |
| [ |
| { |
| "pid" : "<0.11599.0>", |
| "status" : "Copied 0 of 18369 changes (0%)", |
| "task" : "recipes", |
| "type" : "Database Compaction" |
| } |
| ] |
| |
| The returned structure includes the following fields for each task: |
| |
| * **tasks** [array]: Active Task |
| |
| * **pid**:Process ID |
| * **status**: Task status message |
| * **task**: Task name |
| * **type**: Operation Type |
| |
| For operation type, valid values include: |
| |
| - ``Database Compaction`` |
| |
| - ``Replication`` |
| |
| - ``View Group Compaction`` |
| |
| - ``View Group Indexer`` |
| |
| ``GET /_all_dbs`` |
| ================= |
| |
| * **Method**: ``GET /_all_dbs`` |
| * **Request**: None |
| * **Response**: JSON list of DBs |
| * **Admin Privileges Required**: no |
| * **Return Codes**: |
| |
| * **200**: |
| Request completed successfully. |
| |
| Returns a list of all the databases in the CouchDB instance. For |
| example: |
| |
| .. code-block:: http |
| |
| GET http://couchdb:5984/_all_dbs |
| Accept: application/json |
| |
| The return is a JSON array: |
| |
| .. code-block:: javascript |
| |
| [ |
| "_users", |
| "contacts", |
| "docs", |
| "invoices", |
| "locations" |
| ] |
| |
| ``GET /_db_updates`` |
| ==================== |
| |
| * **Method**: ``GET /_db_updates`` |
| * **Request**: None |
| * **Admin Privileges Required**: yes |
| * **Query ARguments**: |
| |
| * **Argument**: feed |
| |
| * **Descroption**: Format of the response feed |
| * **Optional**: yes |
| * **Type**: string |
| * **Default**: longpoll |
| * **Supported Values**: |
| |
| * **longpoll**: Closes the connection after the first event. |
| * **continuous**: Send a line of JSON per event. Keeps the socket open until ``timeout``. |
| * **eventsource**: Like, ``continuous``, but sends the events in EventSource format. See http://dev.w3.org/html5/eventsource/ for details, |
| |
| * **Argument**: timeout |
| |
| * **Descroption**: Number of seconds until CouchDB closes the connection. |
| * **Optional**: yes |
| * **Type**: numeric |
| * **Default**: 60 |
| |
| * **Argument**: heartbeat |
| |
| * **Descroption**: Whether CouchDB will send a newline character (``\n``) on ``timeout``. |
| * **Optional**: yes |
| * **Type**: boolean |
| * **Default**: true |
| |
| * **Return Codes**: |
| |
| * **200** |
| Request completed successfully. |
| |
| Returns a list of all database events in the CouchDB instance. |
| |
| A database event is one of `created`, `updated`, `deleted`. |
| |
| For example: |
| |
| .. code-block:: http |
| |
| GET http://couchdb:5984/_db_events?feed=continuous |
| Accept: application/json |
| |
| .. code-block:: javascript |
| |
| {"dbname":"my-database", "type":"created"} |
| {"dbname":"my-database", "type":"updated"} |
| {"dbname":"another-database", "type":"created"} |
| {"dbname":"my-database", "type":"deleted"} |
| {"dbname":"another-database", "type":"updated"} |
| |
| |
| |
| ``GET /_log`` |
| ============= |
| |
| * **Method**: ``GET /_log`` |
| * **Request**: None |
| * **Response**: Log content |
| * **Admin Privileges Required**: yes |
| * **Query Arguments**: |
| |
| * **Argument**: bytes |
| |
| * **Description**: Bytes to be returned |
| * **Optional**: yes |
| * **Type**: numeric |
| * **Default**: 1000 |
| |
| * **Argument**: offset |
| |
| * **Description**: Offset in bytes where the log tail should be started |
| * **Optional**: yes |
| * **Type**: numeric |
| * **Default**: 0 |
| |
| * **Return Codes**: |
| |
| * **200**: |
| Request completed successfully. |
| |
| Gets the CouchDB log, equivalent to accessing the local log file of the |
| corresponding CouchDB instance. |
| |
| When you request the log, the response is returned as plain (UTF-8) |
| text, with an HTTP ``Content-type`` header as ``text/plain``. |
| |
| For example, the request: |
| |
| .. code-block:: http |
| |
| GET http://couchdb:5984/_log |
| Accept: */* |
| |
| The raw text is returned: |
| |
| .. code-block:: text |
| |
| [Wed, 27 Oct 2010 10:49:42 GMT] [info] [<0.23338.2>] 192.168.0.2 - - 'PUT' /authdb 401 |
| [Wed, 27 Oct 2010 11:02:19 GMT] [info] [<0.23428.2>] 192.168.0.116 - - 'GET' /recipes/FishStew 200 |
| [Wed, 27 Oct 2010 11:02:19 GMT] [info] [<0.23428.2>] 192.168.0.116 - - 'GET' /_session 200 |
| [Wed, 27 Oct 2010 11:02:19 GMT] [info] [<0.24199.2>] 192.168.0.116 - - 'GET' / 200 |
| [Wed, 27 Oct 2010 13:03:38 GMT] [info] [<0.24207.2>] 192.168.0.116 - - 'GET' /_log?offset=5 200 |
| |
| If you want to pick out specific parts of the log information you can |
| use the ``bytes`` argument, which specifies the number of bytes to be |
| returned, and ``offset``, which specifies where the reading of the log |
| should start, counted back from the end. For example, if you use the |
| following request: |
| |
| .. code-block:: http |
| |
| GET /_log?bytes=500&offset=2000 |
| |
| Reading of the log will start at 2000 bytes from the end of the log, and |
| 500 bytes will be shown. |
| |
| .. _replicate: |
| |
| ``POST /_replicate`` |
| ==================== |
| |
| .. todo:: POST /_replicate :: what response is? |
| |
| * **Method**: ``POST /_replicate`` |
| * **Request**: Replication specification |
| * **Response**: TBD |
| * **Admin Privileges Required**: yes |
| * **Query Arguments**: |
| |
| * **Argument**: bytes |
| |
| * **Description**: Bytes to be returned |
| * **Optional**: yes |
| * **Type**: numeric |
| * **Default**: 1000 |
| |
| * **Argument**: offset |
| |
| * **Description**: Offset in bytes where the log tail should be started |
| * **Optional**: yes |
| * **Type**: numeric |
| * **Default**: 0 |
| |
| * **Return Codes**: |
| |
| * **200**: |
| Replication request successfully completed |
| * **202**: |
| Continuous replication request has been accepted |
| * **404**: |
| Either the source or target DB is not found |
| * **500**: |
| JSON specification was invalid |
| |
| Request, configure, or stop, a replication operation. |
| |
| The specification of the replication request is controlled through the |
| JSON content of the request. The JSON should be an object with the |
| fields defining the source, target and other options. The fields of the |
| JSON request are shown in the table below: |
| |
| * **cancel (optional)**: Cancels the replication |
| * **continuous (optional)**: Configure the replication to be continuous |
| * **create_target (optional)**: Creates the target database |
| * **doc_ids (optional)**: Array of document IDs to be synchronized |
| * **proxy (optional)**: Address of a proxy server through which replication |
| should occur |
| * **source**: Source database name or URL |
| * **target**: Target database name or URL |
| |
| Replication Operation |
| --------------------- |
| |
| The aim of the replication is that at the end of the process, all active |
| documents on the source database are also in the destination database |
| and all documents that were deleted in the source databases are also |
| deleted (if they exist) on the destination database. |
| |
| Replication can be described as either push or pull replication: |
| |
| - *Pull replication* is where the ``source`` is the remote CouchDB |
| instance, and the ``destination`` is the local database. |
| |
| Pull replication is the most useful solution to use if your source |
| database has a permanent IP address, and your destination (local) |
| database may have a dynamically assigned IP address (for example, |
| through DHCP). This is particularly important if you are replicating |
| to a mobile or other device from a central server. |
| |
| - *Push replication* is where the ``source`` is a local database, and |
| ``destination`` is a remote database. |
| |
| Specifying the Source and Target Database |
| ----------------------------------------- |
| |
| You must use the URL specification of the CouchDB database if you want |
| to perform replication in either of the following two situations: |
| |
| - Replication with a remote database (i.e. another instance of CouchDB |
| on the same host, or a different host) |
| |
| - Replication with a database that requires authentication |
| |
| For example, to request replication between a database local to the |
| CouchDB instance to which you send the request, and a remote database |
| you might use the following request: |
| |
| .. code-block:: http |
| |
| POST http://couchdb:5984/_replicate |
| Content-Type: application/json |
| Accept: application/json |
| |
| { |
| "source" : "recipes", |
| "target" : "http://coucdb-remote:5984/recipes", |
| } |
| |
| |
| In all cases, the requested databases in the ``source`` and ``target`` |
| specification must exist. If they do not, an error will be returned |
| within the JSON object: |
| |
| .. code-block:: javascript |
| |
| { |
| "error" : "db_not_found" |
| "reason" : "could not open http://couchdb-remote:5984/ol1ka/", |
| } |
| |
| You can create the target database (providing your user credentials |
| allow it) by adding the ``create_target`` field to the request object: |
| |
| .. code-block:: http |
| |
| POST http://couchdb:5984/_replicate |
| Content-Type: application/json |
| Accept: application/json |
| |
| { |
| "create_target" : true |
| "source" : "recipes", |
| "target" : "http://couchdb-remote:5984/recipes", |
| } |
| |
| The ``create_target`` field is not destructive. If the database already |
| exists, the replication proceeds as normal. |
| |
| Single Replication |
| ------------------ |
| |
| You can request replication of a database so that the two databases can |
| be synchronized. By default, the replication process occurs one time and |
| synchronizes the two databases together. For example, you can request a |
| single synchronization between two databases by supplying the ``source`` |
| and ``target`` fields within the request JSON content. |
| |
| .. code-block:: http |
| |
| POST http://couchdb:5984/_replicate |
| Content-Type: application/json |
| Accept: application/json |
| |
| { |
| "source" : "recipes", |
| "target" : "recipes-snapshot", |
| } |
| |
| In the above example, the databases ``recipes`` and ``recipes-snapshot`` |
| will be synchronized. These databases are local to the CouchDB instance |
| where the request was made. The response will be a JSON structure |
| containing the success (or failure) of the synchronization process, and |
| statistics about the process: |
| |
| .. code-block:: javascript |
| |
| { |
| "ok" : true, |
| "history" : [ |
| { |
| "docs_read" : 1000, |
| "session_id" : "52c2370f5027043d286daca4de247db0", |
| "recorded_seq" : 1000, |
| "end_last_seq" : 1000, |
| "doc_write_failures" : 0, |
| "start_time" : "Thu, 28 Oct 2010 10:24:13 GMT", |
| "start_last_seq" : 0, |
| "end_time" : "Thu, 28 Oct 2010 10:24:14 GMT", |
| "missing_checked" : 0, |
| "docs_written" : 1000, |
| "missing_found" : 1000 |
| } |
| ], |
| "session_id" : "52c2370f5027043d286daca4de247db0", |
| "source_last_seq" : 1000 |
| } |
| |
| The structure defines the replication status, as described in the table |
| below: |
| |
| * **history [array]**: Replication History |
| |
| * **doc_write_failures**: Number of document write failures |
| * **docs_read**: Number of documents read |
| * **docs_written**: Number of documents written to target |
| * **end_last_seq**: Last sequence number in changes stream |
| * **end_time**: Date/Time replication operation completed |
| * **missing_checked**: Number of missing documents checked |
| * **missing_found**: Number of missing documents found |
| * **recorded_seq**: Last recorded sequence number |
| * **session_id**: Session ID for this replication operation |
| * **start_last_seq**: First sequence number in changes stream |
| * **start_time**: Date/Time replication operation started |
| |
| * **ok**: Replication status |
| * **session_id**: Unique session ID |
| * **source_last_seq**: Last sequence number read from source database |
| |
| Continuous Replication |
| ---------------------- |
| |
| Synchronization of a database with the previously noted methods happens |
| only once, at the time the replicate request is made. To have the target |
| database permanently replicated from the source, you must set the |
| ``continuous`` field of the JSON object within the request to true. |
| |
| With continuous replication changes in the source database are |
| replicated to the target database in perpetuity until you specifically |
| request that replication ceases. |
| |
| .. code-block:: http |
| |
| POST http://couchdb:5984/_replicate |
| Content-Type: application/json |
| Accept: application/json |
| |
| { |
| "continuous" : true |
| "source" : "recipes", |
| "target" : "http://couchdb-remote:5984/recipes", |
| } |
| |
| Changes will be replicated between the two databases as long as a |
| network connection is available between the two instances. |
| |
| .. note:: |
| Two keep two databases synchronized with each other, you need to set |
| replication in both directions; that is, you must replicate from |
| ``databasea`` to ``databaseb``, and separately from ``databaseb`` to |
| ``databasea``. |
| |
| Canceling Continuous Replication |
| -------------------------------- |
| |
| You can cancel continuous replication by adding the ``cancel`` field to |
| the JSON request object and setting the value to true. Note that the |
| structure of the request must be identical to the original for the |
| cancellation request to be honoured. For example, if you requested |
| continuous replication, the cancellation request must also contain the |
| ``continuous`` field. |
| |
| For example, the replication request: |
| |
| .. code-block:: http |
| |
| POST http://couchdb:5984/_replicate |
| Content-Type: application/json |
| Accept: application/json |
| |
| { |
| "source" : "recipes", |
| "target" : "http://couchdb-remote:5984/recipes", |
| "create_target" : true, |
| "continuous" : true |
| } |
| |
| Must be canceled using the request: |
| |
| .. code-block:: http |
| |
| POST http://couchdb:5984/_replicate |
| Content-Type: application/json |
| Accept: application/json |
| |
| { |
| "cancel" : true, |
| "continuous" : true |
| "create_target" : true, |
| "source" : "recipes", |
| "target" : "http://couchdb-remote:5984/recipes", |
| } |
| |
| Requesting cancellation of a replication that does not exist results in |
| a 404 error. |
| |
| ``POST /_restart`` |
| ================== |
| |
| * **Method**: ``POST /_restart`` |
| * **Request**: None |
| * **Response**: JSON status message |
| * **Admin Privileges Required**: yes |
| * **HTTP Headers**: |
| |
| * **Header**: ``Content-Type`` |
| |
| * **Description**: Request content type |
| * **Optional**: no |
| * **Value**: :mimetype:`application/json` |
| |
| * **Return Codes**: |
| |
| * **200**: |
| Replication request successfully completed |
| |
| Restarts the CouchDB instance. You must be authenticated as a user with |
| administration privileges for this to work. |
| |
| For example: |
| |
| .. code-block:: http |
| |
| POST http://admin:password@couchdb:5984/_restart |
| |
| The return value (if the server has not already restarted) is a JSON |
| status object indicating that the request has been received: |
| |
| .. code-block:: javascript |
| |
| { |
| "ok" : true, |
| } |
| |
| If the server has already restarted, the header may be returned, but no |
| actual data is contained in the response. |
| |
| ``GET /_stats`` |
| =============== |
| |
| * **Method**: ``GET /_stats`` |
| * **Request**: None |
| * **Response**: Server statistics |
| * **Admin Privileges Required**: no |
| * **Return Codes**: |
| |
| * **200**: |
| Request completed successfully. |
| |
| The ``_stats`` method returns a JSON object containing the statistics |
| for the running server. The object is structured with top-level sections |
| collating the statistics for a range of entries, with each individual |
| statistic being easily identified, and the content of each statistic is |
| self-describing. For example, the request time statistics, within the |
| ``couchdb`` section are structured as follows: |
| |
| .. code-block:: javascript |
| |
| { |
| "couchdb" : { |
| ... |
| "request_time" : { |
| "stddev" : "27.509", |
| "min" : "0.333333333333333", |
| "max" : "152", |
| "current" : "400.976", |
| "mean" : "10.837", |
| "sum" : "400.976", |
| "description" : "length of a request inside CouchDB without MochiWeb" |
| }, |
| ... |
| } |
| } |
| |
| |
| The fields provide the current, minimum and maximum, and a collection of |
| statistical means and quantities. The quantity in each case is not |
| defined, but the descriptions below provide |
| |
| The statistics are divided into the following top-level sections: |
| |
| - ``couchdb``: Describes statistics specific to the internals of CouchDB. |
| |
| +-------------------------+-------------------------------------------------------+----------------+ |
| | Statistic ID | Description | Unit | |
| +=========================+=======================================================+================+ |
| | ``auth_cache_hits`` | Number of authentication cache hits | number | |
| +-------------------------+-------------------------------------------------------+----------------+ |
| | ``auth_cache_misses`` | Number of authentication cache misses | number | |
| +-------------------------+-------------------------------------------------------+----------------+ |
| | ``database_reads`` | Number of times a document was read from a database | number | |
| +-------------------------+-------------------------------------------------------+----------------+ |
| | ``database_writes`` | Number of times a database was changed | number | |
| +-------------------------+-------------------------------------------------------+----------------+ |
| | ``open_databases`` | Number of open databases | number | |
| +-------------------------+-------------------------------------------------------+----------------+ |
| | ``open_os_files`` | Number of file descriptors CouchDB has open | number | |
| +-------------------------+-------------------------------------------------------+----------------+ |
| | ``request_time`` | Length of a request inside CouchDB without MochiWeb | milliseconds | |
| +-------------------------+-------------------------------------------------------+----------------+ |
| |
| - ``httpd_request_methods`` |
| |
| +----------------+----------------------------------+----------+ |
| | Statistic ID | Description | Unit | |
| +================+==================================+==========+ |
| | ``COPY`` | Number of HTTP COPY requests | number | |
| +----------------+----------------------------------+----------+ |
| | ``DELETE`` | Number of HTTP DELETE requests | number | |
| +----------------+----------------------------------+----------+ |
| | ``GET`` | Number of HTTP GET requests | number | |
| +----------------+----------------------------------+----------+ |
| | ``HEAD`` | Number of HTTP HEAD requests | number | |
| +----------------+----------------------------------+----------+ |
| | ``POST`` | Number of HTTP POST requests | number | |
| +----------------+----------------------------------+----------+ |
| | ``PUT`` | Number of HTTP PUT requests | number | |
| +----------------+----------------------------------+----------+ |
| |
| - ``httpd_status_codes`` |
| |
| +----------------+------------------------------------------------------+----------+ |
| | Statistic ID | Description | Unit | |
| +================+======================================================+==========+ |
| | ``200`` | Number of HTTP 200 OK responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``201`` | Number of HTTP 201 Created responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``202`` | Number of HTTP 202 Accepted responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``301`` | Number of HTTP 301 Moved Permanently responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``304`` | Number of HTTP 304 Not Modified responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``400`` | Number of HTTP 400 Bad Request responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``401`` | Number of HTTP 401 Unauthorized responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``403`` | Number of HTTP 403 Forbidden responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``404`` | Number of HTTP 404 Not Found responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``405`` | Number of HTTP 405 Method Not Allowed responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``409`` | Number of HTTP 409 Conflict responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``412`` | Number of HTTP 412 Precondition Failed responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| | ``500`` | Number of HTTP 500 Internal Server Error responses | number | |
| +----------------+------------------------------------------------------+----------+ |
| |
| - ``httpd`` |
| |
| +----------------------------------+----------------------------------------------+----------+ |
| | Statistic ID | Description | Unit | |
| +==================================+==============================================+==========+ |
| | ``bulk_requests`` | Number of bulk requests | number | |
| +----------------------------------+----------------------------------------------+----------+ |
| | ``clients_requesting_changes`` | Number of clients for continuous _changes | number | |
| +----------------------------------+----------------------------------------------+----------+ |
| | ``requests`` | Number of HTTP requests | number | |
| +----------------------------------+----------------------------------------------+----------+ |
| | ``temporary_view_reads`` | Number of temporary view reads | number | |
| +----------------------------------+----------------------------------------------+----------+ |
| | ``view_reads`` | Number of view reads | number | |
| +----------------------------------+----------------------------------------------+----------+ |
| |
| You can also access individual statistics by quoting the statistics |
| sections and statistic ID as part of the URL path. For example, to get |
| the ``request_time`` statistics, you can use: |
| |
| .. code-block:: http |
| |
| GET /_stats/couchdb/request_time |
| |
| This returns an entire statistics object, as with the full request, but |
| containing only the request individual statistic. Hence, the returned |
| structure is as follows: |
| |
| .. code-block:: javascript |
| |
| { |
| "couchdb" : { |
| "request_time" : { |
| "stddev" : 7454.305, |
| "min" : 1, |
| "max" : 34185, |
| "current" : 34697.803, |
| "mean" : 1652.276, |
| "sum" : 34697.803, |
| "description" : "length of a request inside CouchDB without MochiWeb" |
| } |
| } |
| } |
| |
| |
| ``GET /_utils`` |
| =============== |
| |
| * **Method**: ``GET /_utils`` |
| * **Request**: None |
| * **Response**: Administration interface |
| * **Admin Privileges Required**: no |
| |
| Accesses the built-in Futon administration interface for CouchDB. |
| |
| ``GET /_uuids`` |
| =============== |
| |
| * **Method**: ``GET /_uuids`` |
| * **Request**: None |
| * **Response**: List of UUIDs |
| * **Admin Privileges Required**: no |
| * **Query Arguments**: |
| |
| * **Argument**: count |
| |
| * **Description**: Number of UUIDs to return |
| * **Optional**: yes |
| * **Type**: numeric |
| |
| * **Return Codes**: |
| |
| * **200**: |
| Request completed successfully. |
| |
| Requests one or more Universally Unique Identifiers (UUIDs) from the |
| CouchDB instance. The response is a JSON object providing a list of |
| UUIDs. For example: |
| |
| .. code-block:: javascript |
| |
| { |
| "uuids" : [ |
| "7e4b5a14b22ec1cf8e58b9cdd0000da3" |
| ] |
| } |
| |
| You can use the ``count`` argument to specify the number of UUIDs to be |
| returned. For example: |
| |
| .. code-block:: http |
| |
| GET http://couchdb:5984/_uuids?count=5 |
| |
| Returns: |
| |
| .. code-block:: javascript |
| |
| { |
| "uuids" : [ |
| "c9df0cdf4442f993fc5570225b405a80", |
| "c9df0cdf4442f993fc5570225b405bd2", |
| "c9df0cdf4442f993fc5570225b405e42", |
| "c9df0cdf4442f993fc5570225b4061a0", |
| "c9df0cdf4442f993fc5570225b406a20" |
| ] |
| } |
| |
| The UUID type is determined by the UUID type setting in the CouchDB |
| configuration. See :ref:`api-put-config`. |
| |
| For example, changing the UUID type to ``random``: |
| |
| .. code-block:: http |
| |
| PUT http://couchdb:5984/_config/uuids/algorithm |
| Content-Type: application/json |
| Accept: */* |
| |
| "random" |
| |
| When obtaining a list of UUIDs: |
| |
| .. code-block:: javascript |
| |
| { |
| "uuids" : [ |
| "031aad7b469956cf2826fcb2a9260492", |
| "6ec875e15e6b385120938df18ee8e496", |
| "cff9e881516483911aa2f0e98949092d", |
| "b89d37509d39dd712546f9510d4a9271", |
| "2e0dbf7f6c4ad716f21938a016e4e59f" |
| ] |
| } |
| |
| ``GET /favicon.ico`` |
| ==================== |
| |
| * **Method**: ``GET /favicon.ico`` |
| * **Request**: None |
| * **Response**: Binary content for the `favicon.ico` site icon |
| * **Admin Privileges Required**: no |
| * **Return Codes**: |
| |
| * **200**: |
| Request completed successfully. |
| * **404**: |
| The requested content could not be found. The returned content will include |
| further information, as a JSON object, if available. |
| |
| Returns the site icon. The return ``Content-Type`` header is |
| :mimetype:`image/x-icon`, and the content stream is the image data. |