3 KiB
Взаимодействие с модулем через 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>"
Это запрос:
- К приложению
app-name
. - К файловому API (у которого endpoint всегда
files
). - К ящику
box-name
. - К пути
my_dir/my_file.txt
внутри ящика. - От имени пользователя модуля
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
- локальный путь к файлу.