REST API
Сервер предлагает возможность использовать REST API. При работе с загрузкой и скачиванием объектов можно использовать REST API.
Загрузка и скачивание объектов
Проверьте, содержит ли сервер список объектов.
Этот метод полезен для оптимизации загрузок, чтобы объекты, которые уже находятся в проекте, не загружались при каждой отправки данных.
URL: ${CANONICAL_URL}/api/diff/:streamId
Метод: Публикация
Аутентификация: Токен
Необходимые права: Права на запись в проекте
Структура тела запроса: application/json
Текст запроса:
objects (string): Массив идентификаторов объектов, сериализованный в виде строки JSON Ограничения:
Рекомендуемое максимальное количество объектов для проверки: 1000 Выходные данные: JSON-представление словаря, где ключи — это идентификаторы входных объектов, а значения — логические значения (независимо от того, есть ли уже этот объект на сервере или нет)
Загрузить пакет объектов URL: ${CANONICAL_URL}/objects/:streamId
Метод: Публикация
Аутентификация: Токен
Необходимые права: Права на запись в проекте
Входные данные: Пакет для вставки отправляется как содержимое файла с многокомпонентной кодировкой (имя файла игнорируется) и представляет собой JSON-представление массива объектов для вставки.
Пример содержания файла: [{"id": "9b2cdb21da092dbd3558a4bc55b2cf7e", "speckle_type": "Base", "totalChildrenCount": 0, "numbers": [0.04667752874618203, 0.16370857295385177, 0.1008153029515465]}])
Сервер принимает несколько пакетов как несколько файлов за один вызов.
Рекомендуется сжать пакет с помощью gzip и установить content_type загруженного файла на application/gzip. В противном случае установите его на application/json
Ограничения:
Максимальный размер каждого отдельного объекта: 10 МБ (большие объекты можно разделить на несколько объектов с помощью свойств chunkable и detachable)
Максимальный размер каждого запроса: жесткое ограничение 50 МБ
Загрузка одного объекта
URL: ${CANONICAL_URL}/objects/:streamId/:objectId/single
Метод: Получение
Аутентификация: Токен
Необходимые права: Разрешения на чтение в проекте
Выходные данные: JSON-представление объекта
Загрузка списка объектов
Этот метод полезен при оптимизации загрузок: получите корневой объект без дочерних объектов, проверьте идентификаторы дочерних объектов в локальном кэше, а затем запросите только новые объекты с помощью этого метода.
URL: ${CANONICAL_URL}/api/getobjects/:streamId
Метод: Публикация
Аутентификация: Токен
Необходимые права: Разрешения на чтение проекте
Схема запроса: application/json
Тело запроса:
objects (string): Массив идентификаторов объектов, сериализованный в виде строки JSON
Заголовки:
Accept: или text/plain, или application/json
Ограничения:
Рекомендуемое максимальное количество объектов для загрузки за 1 запрос: 1000
Выходные данные: Запрошенные объекты. Форматирование основано на заголовке HTTP-запроса Accept
Если Accept - это text/plain, каждая строка вывода содержит 1 объект в формате: {object_id}\t{object_content}
Если Accept — это application/json, то вывод представляет собой JSON-представление массива объектов. Загрузка объекта и всех его дочерних элементов
URL: ${CANONICAL_URL}/objects/:streamId/:objectId
Метод: Получение
Аутентификация: Токен
Необходимые права: Разрешения на чтение в проекте
Заголовки:
Accept: или text/plain или application/json
Выходные данные: Запрошенный объект и его потомки. Форматирование основано на заголовке HTTP-запроса Accept
Если Accept - это text/plain, каждая строка вывода содержит 1 объект в формате: {object_id}\t{object_content}
Если Accept — это application/json, то вывод представляет собой JSON-представление массива объектов.