1
0
Fork 0
arangodb/Documentation/ImplementorManual/RestDocument.md

95 lines
3.2 KiB
Markdown

REST Interface for Documents {#RestDocument}
============================================
@NAVIGATE_RestDocument
@EMBEDTOC{RestDocumentTOC}
Documents, Identifiers, Handles {#RestDocumentIntro}
====================================================
This is an introduction to ArangoDB's REST interface for documents.
@copydoc GlossaryDocument
For example:
@verbinclude document1
All documents contain special attributes: the document handle in `_id`, the
document's unique key in `_key` and and the etag aka document revision in
`_rev`. The value of the `_key` attribute can be specified by the user when
creating a document. `_id` and `_key` values are immutable once the document
has been created. The `_rev` value is maintained by ArangoDB autonomously.
@copydoc GlossaryDocumentHandle
@copydoc GlossaryDocumentKey
@copydoc GlossaryDocumentRevision
@copydoc GlossaryDocumentEtag
The basic operations (create, read, update, delete) for documents are mapped to
the standard HTTP methods (`POST`, `GET`, `PUT`, `DELETE`). There is also a
partial update method, which is mapped to the HTTP `PATCH` method.
An identifier for the document revision is returned in the `ETag` header field.
If you modify a document, you can use the `If-Match` field to detect conflicts.
The revision of a document can be checking using the HTTP method `HEAD`.
Address and ETag of a Document {#RestDocumentResource}
======================================================
All documents in ArangoDB have a document handle. This handle uniquely defines a
document and is managed by ArangoDB. All documents are found under the URI:
http://server:port/_api/document/document-handle
For example: Assume that the document handle, which is stored in the `_id`
attribute of the document, is `demo/362549736`, then the URL of that document
is:
http://localhost:8529/_api/document/demo/362549736
Each document also has a document revision or etag with is returned in the
"ETag" header field when requesting a document.
If you obtain a document using `GET` and you want to check if a newer revision
is available, then you can use the `If-None-Match` header. If the document is
unchanged, a `HTTP 412` is returned.
If you want to update or delete a document, then you can use the `If-Match`
header. If the document has changed, then the operation is aborted and a `HTTP
412` is returned.
Working with Documents using REST {#RestDocumentHttp}
=====================================================
@CLEARPAGE
@anchor RestDocumentRead
@copydetails triagens::arango::RestDocumentHandler::readSingleDocument
@CLEARPAGE
@anchor RestDocumentCreate
@copydetails triagens::arango::RestDocumentHandler::createDocument
@CLEARPAGE
@anchor RestDocumentReplace
@copydetails triagens::arango::RestDocumentHandler::replaceDocument
@CLEARPAGE
@anchor RestDocumentUpdate
@copydetails triagens::arango::RestDocumentHandler::updateDocument
@CLEARPAGE
@anchor RestDocumentDelete
@copydetails triagens::arango::RestDocumentHandler::deleteDocument
@CLEARPAGE
@anchor RestDocumentHead
@copydetails triagens::arango::RestDocumentHandler::checkDocument
@CLEARPAGE
@anchor RestDocumentReadAll
@copydetails triagens::arango::RestDocumentHandler::readAllDocuments