Поиск ресурсов
Поиск ресурсов
Обзор
API-интерфейс Frame.io поддерживает глубокий фасетный поиск ресурсов по всей учетной записи, дублируя функциональность в веб-приложении. Хотя наиболее полезные фильтры — это команда, проект и статус, фильтры и сортировку можно комбинировать уникальными способами для создания очень конкретных наборов, управляемых API-интерфейсами. В целом все фильтры, кроме account_id, q (запрос) и sort, имеют одинаковую структуру и все объясняются ниже. 
По состоянию на март 2022 года известна ошибка, влияющая на функцию постраничного вывода API-интерфейса поиска. Пока эта ошибка не устранена, мы не рекомендуем использовать поисковой API-интерфейс для перебора нескольких страниц результатов (т. е. более 100 ресурсов), поскольку запрошенный размер страницы может не соответствовать фактическому количеству возвращенных ресурсов.
Значения по умолчанию
Запрос API-интерфейса для запуска поиска всегда одинаковый:
это всегда один и тот же запрос
POST по адресу https://api.frame.io/v2/search/library
Если не указано явно, значения по умолчанию для настройки поиска следующие:
Об этом руководстве
В этом руководстве представлен процесс создания поискового запроса, который соответствует следующим критериям:
- ресурсы в учетной записи;
- соответствует запросу
"moon"; - находится в конкретном проекте;
- добавление с 1 по 30 апреля 2020 года;
- наличие статуса «Утверждено».
Основная часть нашего поиска будет выглядеть следующим образом:
Учетная запись, запрос и сортировка.
Учетная запись (account_id), запрос (q) и sort — это три основных элемента, которые находятся вне атрибутов filter в поисковом запросе.
Контекст учетной записи
Технически единственный атрибут, необходимый для выполнения поиска, — account_id. Это приведет к выгрузке всех ресурсов (включая папки) в учетной записи с использованием параметров разбивки на страницы по умолчанию (10 ресурсов на страницу, начиная со страницы 1).
Поисковый запрос
Следующим наиболее распространенным (и полезным) атрибутом является сам запрос. Примечание. Поскольку поисковой API-интерфейс Frame.io принимает нулевой запрос, подстановочный знак (*) не требуется. Вы либо ищете что-то конкретное, либо запрашиваете (возможно, отфильтрованную) сортировку всех ресурсов в учетной записи.
В нашем случае мы будем искать слово «луна».
Сортировка
Frame.io поддерживает множество различных параметров сортировки. Синтаксис порядка сортировки одинаков для всех параметров:
- Есть направление сортировки по умолчанию.
- Чтобы изменить это направление на противоположное, добавьте перед значением сортировки знак минус
-.
Например, для сортировки в обратном алфавитном порядке (от Я до А) нужно сообщить "sort": "-name". Операция сортировки по умолчанию — «Relevance». Соответственно, ее не нужно сообщать, и она будет применена, если атрибут sort не указан.
Фильтры и разбивка на страницы
Фильтры — это самая сложная и в то же время самая эффективная функция поиска ресурсов Frame.io. Фильтры записываются в одном объекте filter и следуют одной схеме с операцией (op) и значением. Фильтры будут использовать следующие общие сокращения, при этом варианты эквивалентности, отличные от «equals», зарезервированы для запросов даты и размера:
eq— равноlt— менее чемgt— более чемlte— менее чем или равноgte— более чем или равноmatch— точное соответствие, используемое только для фильтров «Добавляющий пользователь» и «Тип файла»
Например, фильтр для сопоставления с известным project_id будет создан следующим образом:
Параметры и операции
В следующей таблице описаны параметры и операции, связанные с каждым типом фильтра.
Поиск создателей, которые больше не являются участниками учетной записи, работать не будет, поскольку этот пользователь больше не находится в индексе поиска пользователей.
Чтобы продолжить создание запроса, теперь можно добавить фильтр для ресурсов, которые:
- находится в конкретном проекте;
- добавлены с 1 по 30 апреля 2020 года;
- помечены как «Утверждено».
Конечная точка поиска разбивает на страницы точно так же, как и любая другая конечная точка, через атрибуты page_size и page, которые находятся на внешнем слое тела запроса. Подробнее о разбивке на страницы см. в отдельном руководстве здесь.