documentation/pages/api-module.md
2025-03-04 17:15:57 +03:00

3 KiB
Raw Blame History

Главная страница

Взаимодействие с модулем через API

Доступ к модулю по API контролируется с помощью компонентов APIComponent. Есть несколько типов таких компонентов, каждый из которых отвечает за свой набор функционала.

  • Файловый API
  • ML-компонент
  • Общая работа с пайплайнами
  • Отдельный пайплайн

Все API запросы работают по ссылкам вида https://platform.stratpro.hse.ru/app-name/<api>.

Здесь app-name - название приложение, оно же указано в пункте namespace во всех компонентах приложения.

Авторизация

Файловый API

Работа с файловым API

URL запросов к файловому API имеют вид https://platform.stratpro.hse.ru/app-name/files/box-name/<path>.

Здесь box-name - это имя компонента DataBox, к которому обращается запрос.

Файловый API позволяет загружать файлы в файловое хранилище и получать уже загруженные файлы. Загрузка папок со всем содержимым не предусмотрена, в таких случаях предполагается автоматизация запросов на загрузку отдельных файлов.

Пример загрузки и скачивания файла через сервис files.

Для загрузки файла можно использовать следующий запрос PUT:

curl -X PUT https://https://platform.stratpro.hse.ru/app-name/files/box-name/my_dir/my_file.txt -H "Content-Type: application/json" -u "developer:<password>"

Это запрос:

  1. К приложению app-name.
  2. К файловому API (у которого endpoint всегда files).
  3. К ящику box-name.
  4. К пути my_dir/my_file.txt внутри ящика.
  5. От имени пользователя модуля developer, пароль которого - <password>.

Даже если запрос верный, сам файл на данном этапе не создаётся. Вместо этого должен прийти ответ в формате JSON:

{
    "name": "app-name/files/box-name/my_dir/my_file.txt",
    "presigned_put_url": "<Длинная pre-signed ссылка загрузки>"
}

С помощью pre-signed ссылки можно уже загрузить сам файл следующим запросом:

curl -X PUT -T local/path/to/my_file.txt "<Длинная pre-signed ссылка загрузки>"

Здесь local/path/to/my_file.txt - локальный путь к файлу.