63 lines
3 KiB
Markdown
63 lines
3 KiB
Markdown
[Главная страница](./README.md)
|
||
|
||
# Взаимодействие с модулем через 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`:
|
||
|
||
```sh
|
||
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:
|
||
|
||
```json
|
||
{
|
||
"name": "app-name/files/box-name/my_dir/my_file.txt",
|
||
"presigned_put_url": "<Длинная pre-signed ссылка загрузки>"
|
||
}
|
||
```
|
||
|
||
С помощью pre-signed ссылки можно уже загрузить сам файл следующим запросом:
|
||
|
||
|
||
```sh
|
||
curl -X PUT -T local/path/to/my_file.txt "<Длинная pre-signed ссылка загрузки>"
|
||
```
|
||
|
||
Здесь `local/path/to/my_file.txt` - локальный путь к файлу.
|