Чтение данных | Tdg

Чтение данных

Для чтения данных из TDG используются GET-запросы на адреса вида data/<TypeName>. В параметрах запроса передаются условия выборки объектов.

Такие запросы эквивалентны вызовам repository.find() c аналогичными аргументами.

Запрос

GET /data/<TypeName>?<arguments>
  • <TypeName> – имя типа данных из модели.

  • <arguments> – параметры запроса.

Запрос может содержать следующие параметры (все они являются опциональными):

<index_name>

Выборка по индексу <index_name> по полному совпадению с указанным значением. Например: id=10.

При использовании составных индексов указывайте значения полей через запятую. Например: multipart_index=0,10,true,null.

<index_name_gt>

Выборка по индексу <index_name> с условием “больше указанного значения”. Например: population_gt=100000

При использовании составных индексов указывайте значения полей через запятую. Например: multipart_index_gt=0,10

<index_name_ge>

Выборка по индексу <index_name> с условием “больше или равно указанного значения”. Например: population_ge=100000

При использовании составных индексов указывайте значения полей через запятую. Например: multipart_index_ge=0,10

<index_name_lt>

Выборка по индексу <index_name> с условием “меньше указанного значения”. Например: population_lt=100000

При использовании составных индексов указывайте значения полей через запятую. Например: multipart_index_lt=0,10

<index_name_le>

Выборка по индексу <index_name> с условием “меньше или равно указанного значения”. Например: population_le=100000

При использовании составных индексов указывайте значения полей через запятую. Например: multipart_index_le=0,10

<index_name_like>

Выборка по строковому индексу <index_name> по шаблону. Например: name=Abc%

<index_name_ilike>

Выборка по строковому индексу <index_name> по шаблону без учёта регистра. Например: name=abc%

indexed_by

Имя индекса для упорядочивания объектов выборки. При передаче этого параметра объекты будут упорядочены по возрастанию значений указанного индекса.

Обратите внимание, что параметр indexed_by применяется на этапе выборки объектов. Таким образом, запросы, отличающиеся только значением indexed_by, могут возвращать разные наборы объектов. Например, запрос с indexed_by=price&first=5 вернёт 5 объектов с наименьшими значениями price, а запрос c indexed_by=name&first=5 – 5 объектов с первыми значениями name в лексикографическом порядке.

first

Количество возвращаемых объектов. Значение по умолчанию: 10.

after

Значение курсора первого возвращаемого объекта (поле cursor в возвращаемых объектах JSON). Значение по умолчанию: курсор первого добавленного объекта.

version

Запрашиваемая версия объектов для типов, поддерживающих версионирование. Значение по умолчанию: последняя хранимая версия.

Номер версии также можно передать в HTTP-заголовке version.

all_versions

Флаг получения всех доступных версий объектов для типов, поддерживающих версионирование. Значение по умолчанию: false.

Note

При получении объектов не по первичному ключу через REST API учитываются ограничения на максимальное число кортежей, сканируемых и возвращаемых в рамках одного запроса.

Тело запроса для получения данных должно быть пустым.

Ответ

Набор объектов, удовлетворяющих заданным условиям, в формате JSON.

Пример

Запрос:

GET http://localhost:8081/data/City?population_ge=300000&indexed_by=title&first=3

Ответ:

[
    {
        "cursor": "gaRzY2FukqZCZXJsaW6nR2VybWFueQ",
        "country": "Germany",
        "title": "Berlin",
        "population": 3520031,
        "capital": true
    },
    {
        "cursor": "gaRzY2FukqdEcmVzZGVup0dlcm1hbnk",
        "country": "Germany",
        "title": "Dresden",
        "population": 547172,
        "capital": false
    },
    {
        "cursor": "gaRzY2FukqZNb3Njb3emUnVzc2lh",
        "country": "Russia",
        "title": "Moscow",
        "population": 12655050,
        "capital": true
    }
]
Found what you were looking for?
Feedback