Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Access API provides access to the records of a storage unit. Records can be fetched by key. Records can contain one or more scopes, the access API allows to fetch a single scope for the record(s) requested. If the special $record scope is used or no scope is provided, all scopes are returned.

Fetch


Fetches a single record by key from the storage unit. If the special $record scope is used or no scope is provided, all scopes are returned. If the zone for the key is not specified as a prefix for the key, the local zone is used.


On this page:

Table of Contents
maxLevel1

Request

The fetch GET/POST request requires the name of the storage unit and the key to fetch. Optionally the scope can be provided.

Code Block
languagejs
themeRDark
GET access/fetch/<storage-unit-name>/<record-key>/<optional:scope>

Response

If the key exists, returns a 200 response code and the content record with the specified scope for the key.

Code Block
languagejs
themeRDark
{
    "key": "<record-key>",
	"content": {
        "<scope>": {...}
    }
}
 

If the key doesn't exist, a 400 response code and a KEY_NOT_FOUND message is returned.

Code Block
languagejs
themeRDark
{"message": "KEY_NOT_FOUND"}
 

Fetch Multiple


Fetches one or more records by keys from the storage unit by the records keys. If the special $record scope is used or no scope is provided, all scopes are returned. If the zone for the key is not specified as a prefix for the key, the local zone is used.

Request

The fetch multiple request requires the name of the storage unit and optionally the scope can be provided.

In the GET request, the keys are passed in the keys parameter as a comma separated list of values.

Code Block
languagejs
themeRDark
GET access/fetchMultiple/<storage-unit-name>/<optional:scope>?keys=APP_ZONE:667E2D4E4344AE4813AD719B88D14EC6,APP_ZONE:E0F57D337D5021236E353C7AB305F147
 

In the POST request, the keys are passed in the JSON body keys field as an array of values.

Code Block
languagejs
themeRDark
POST access/fetchMultiple/<storage-unit-name>/<optional:scope>
{
    "keys": [
        "APP_ZONE:667E2D4E4344AE4813AD719B88D14EC6",
        "APP_ZONE:E0F57D337D5021236E353C7AB305F147"
    ]
}


Response

Returns a 200 response code and an array of records with the specified scope for each key that matched the fetch query, or an empty array if non matched.

Code Block
languagejs
themeRDark
[
    {
        "key": "APP_ZONE:667E2D4E4344AE4813AD719B88D14EC6",
        "content": {
            "<scope>": {...}
        }
    },
    {
        "key": "APP_ZONE:E0F57D337D5021236E353C7AB305F147",
        "content": {
            "<scope>": {...}
        }
    }
]

Fetch Page


Fetches a batch of records of a specific zone from a storage unit sorted by record key. 

Request

The fetch page GET/POST request requires the storage unit name and optionally the scope. Parameters startId (Optional: mongo record id. If not specified, the first page of data will be returned. Use the last id of the returned page as the startId for the next page request), size (10 by default) and zone (local zone by default).

Code Block
languagejs
themeRDark
POST access/fetchPage/<storage-unit-name>/<optional:scope>?startId=123456&size=20

Response

Fetch page returns a 200 response code and a response body with a records array with batchSize number of records from zone of the storage unit starting at element startId. If To check if more items are available nextPageStartId field is also part of the response to be used as the startId of a subsequent call for the next page of recordssend a new fetchPage request with the last _id of the page's list as the new startId,if the result is an empty array, you have reached the end of the storage unit.

Code Block
languagejs
themeRDark
[
  {
    "key": "APP_ZONE:1234567",
    "version": 3,
    "content": {
      "<scope>": {
        "doc": {
          "test": "value 3"
        }
      }
    },
    "_id": "58793d3e7536e718b41fcf62"
  },
  {
    "key": "APP_ZONE:1234568",
    "version": 3,
    "content": {
      "<scope>": {
        "doc": {
          "test": "value 2"
        }
      }
    },
    "_id": "58793d3f7536e718b41fcf65"
  },
  {
    "key": "APP_ZONE:1234569",
    "version": 4,
    "content": {
      "<scope>": {
        "doc": {
          "test": "value 3"
        }
      }
    },
    "_id": "58793d3f7536e718b41fcf67"
  }
]

Fetch all records by zone

Fetch Page can be used to fetch all records from a storage unit.

  1. Call fetch page without a startId. This will return the first batch of records of size from the storage unit sorted by _id.
  2. Make subsequent calls with the last _id of the array as the startId
  3. Finish when page response returns an empty array.

Get File


Downloads a file attached to a file scope of a record key in a storage unit.

Request

The get file GET request requires the storage unit name, the record key, the file scope and the file name to download (See putFile for upload info).

Code Block
languagejs
themeRDark
GET access/getFile/<storage-unit>/<record-key>/<scope>/<file-name>

Response

File is downloaded as a stream of bytes.

If the file doesn't exist, a 400 response code is returned and a FILE_NOT_FOUND message.


Get File Metadata


Returns the metadata associated with the requested file.

Request

The get file metadata GET request requires the storage unit name, the record key, the file scope and the file name (See putFile for upload info).

Code Block
languagejs
themeRDark
GET access/getFileMetadata/<storage-unit>/<record-key>/<scope>/<file-name>

Response

Returns a 200 response code and a JSON body with the file metadata.

Code Block
languagejs
themeRDark
{
	"title": "Logo",
	"description": "logo-small"
}

If the file doesn't exist, a 400 response code is returned and a FILE_NOT_FOUND message.