//////////////////////////////////////////////////////////////////////////////// /// @brief over the wire protocol /// /// @file /// /// DISCLAIMER /// /// Copyright 2012 triagens GmbH, Cologne, Germany /// /// 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. /// /// Copyright holder is triAGENS GmbH, Cologne, Germany /// /// @author Jan Steemann /// @author Copyright 2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page HttpImportTOC /// /// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page HttpImport HTTP Interface for bulk imports /// /// ArangoDB provides an HTTP interface to import multiple documents at once /// into a collection. This is known as a bulk import. /// /// @EMBEDTOC{HttpImportTOC} /// /// The data uploaded must be provided in JSON format. There are two mechanisms /// to import the data: /// - self-contained documents: in this case, each document contains all /// attribute names and values. Attribute names may be completely different /// among the documents uploaded /// - attribute names plus document data: in this case, the first document must /// be a JSON list containing the attribute names of the documents that follow. /// The following documents must be lists containing only the document data. /// Data will be mapped to the attribute names by attribute positions. /// /// The endpoint address is @LIT{/_api/import} for both input mechanisms. /// Data must be sent to this URL using an HTTP POST request. The data to import /// must be contained in the body of the POST request. /// /// The @LIT{collection} URL parameter must be used to specify the target collection /// for the import. The optional URL parameter @LIT{createCollection} can be used /// to create a non-existing collection during the import. If not used, importing /// data into a non-existing collection will produce an error. /// /// @section HttpImportSelfContained Importing self-contained documents /////////////////////////////////////////////////////////////////////// /// /// This import method allows uploading self-contained JSON documents. The /// documents must be uploaded in the body of the HTTP POST request. Each line /// of the body will be interpreted as one stand-alone document. Empty lines /// in the body are allowed and will be skipped. /// /// To use this method, the @LIT{type} URL parameter should be set to @LIT{documents}. /// /// @EXAMPLES /// /// @verbinclude api-import-documents /// /// The server will respond with an HTTP 201 if everything went well. The number /// of documents imported will be returned in the @LIT{created} attribute of /// the response. If any documents were skipped or incorrectly formatted, this /// will be returned in the @LIT{errors} attribute. /// /// @section HttpImportHeaderData Importing headers and values ////////////////////////////////////////////////////////////// /// /// When using this type of import, the attribute names of the documents to be /// imported are specified separate from the actual document value data. /// The first line of the HTTP POST request body must be a JSON list containing /// the attribute names for the documents that follow. /// The following lines are interpreted as the document data. Each document must /// be a JSON list of values. No attribute names are needed or allowed in this /// data section. /// /// @EXAMPLES /// /// @verbinclude api-import-headers /// /// The server will again respond with an HTTP 201 if everything went well. The /// number of documents imported will be returned in the @LIT{created} attribute of /// the response. If any documents were skipped or incorrectly formatted, this /// will be returned in the @LIT{errors} attribute. //////////////////////////////////////////////////////////////////////////////// // Local Variables: // mode: c++ // mode: outline-minor // outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)" // End: