@startDocuBlock get_api_replication_dump @brief returns the whole content of one collection @RESTHEADER{GET /_api/replication/dump, Return data of a collection,handleCommandDump} @RESTQUERYPARAMETERS @RESTQUERYPARAM{collection,string,required} The name or id of the collection to dump. @RESTQUERYPARAM{chunkSize,number,optional} Approximate maximum size of the returned result. @RESTQUERYPARAM{batchId,number,required} rocksdb only - The id of the snapshot to use @RESTQUERYPARAM{from,number,optional} mmfiles only - Lower bound tick value for results. @RESTQUERYPARAM{to,number,optional} mmfiles only - Upper bound tick value for results. @RESTQUERYPARAM{includeSystem,boolean,optional} mmfiles only - Include system collections in the result. The default value is *true*. @RESTQUERYPARAM{ticks,boolean,optional} mmfiles only - Whether or not to include tick values in the dump. The default value is *true*. @RESTQUERYPARAM{flush,boolean,optional} mmfiles only - Whether or not to flush the WAL before dumping. The default value is *true*. @RESTDESCRIPTION Returns the data from the collection for the requested range. When the *from* query parameter is not used, collection events are returned from the beginning. When the *from* parameter is used, the result will only contain collection entries which have higher tick values than the specified *from* value (note: the log entry with a tick value equal to *from* will be excluded). The *to* query parameter can be used to optionally restrict the upper bound of the result to a certain tick value. If used, the result will only contain collection entries with tick values up to (including) *to*. The *chunkSize* query parameter can be used to control the size of the result. It must be specified in bytes. The *chunkSize* value will only be honored approximately. Otherwise a too low *chunkSize* value could cause the server to not be able to put just one entry into the result and return it. Therefore, the *chunkSize* value will only be consulted after an entry has been written into the result. If the result size is then bigger than *chunkSize*, the server will respond with as many entries as there are in the response already. If the result size is still smaller than *chunkSize*, the server will try to return more data if there's more data left to return. If *chunkSize* is not specified, some server-side default value will be used. The *Content-Type* of the result is *application/x-arango-dump*. This is an easy-to-process format, with all entries going onto separate lines in the response body. Each line itself is a JSON object, with at least the following attributes: - *tick*: the operation's tick attribute - *key*: the key of the document/edge or the key used in the deletion operation - *rev*: the revision id of the document/edge or the deletion operation - *data*: the actual document/edge data for types 2300 and 2301. The full document/edge data will be returned even for updates. - *type*: the type of entry. Possible values for *type* are: - 2300: document insertion/update - 2301: edge insertion/update - 2302: document/edge deletion **Note**: there will be no distinction between inserts and updates when calling this method. @RESTRETURNCODES @RESTRETURNCODE{200} is returned if the request was executed successfully and data was returned. The header `x-arango-replication-lastincluded` is set to the tick of the last document returned. @RESTRETURNCODE{204} is returned if the request was executed successfully, but there was no content available. The header `x-arango-replication-lastincluded` is `0` in this case. @RESTRETURNCODE{400} is returned if either the *from* or *to* values are invalid. @RESTRETURNCODE{404} is returned when the collection could not be found. @RESTRETURNCODE{405} is returned when an invalid HTTP method is used. @RESTRETURNCODE{500} is returned if an error occurred while assembling the response. @EXAMPLES Empty collection: @EXAMPLE_ARANGOSH_RUN{RestReplicationDumpEmpty_mmfiles} db._drop("testCollection"); var c = db._create("testCollection"); var url = "/_api/replication/dump?collection=" + c.name(); var response = logCurlRequest('GET', url); assert(response.code === 204); logRawResponse(response); c.drop(); @END_EXAMPLE_ARANGOSH_RUN Non-empty collection *(One JSON document per line)*: @EXAMPLE_ARANGOSH_RUN{RestReplicationDump_mmfiles} db._drop("testCollection"); var c = db._create("testCollection"); c.save({ "test" : true, "a" : "abc", "_key" : "abcdef" }); c.save({ "b" : 1, "c" : false, "_key" : "123456" }); c.update("123456", { "d" : "additional value" }); c.save({ "_key": "foobar" }); c.remove("foobar"); c.remove("abcdef"); var url = "/_api/replication/dump?collection=" + c.name(); var response = logCurlRequest('GET', url); assert(response.code === 200); logJsonLResponse(response); c.drop(); @END_EXAMPLE_ARANGOSH_RUN @endDocuBlock