Категории
Теги статьи
API Смены (shifts)
Документация API: Смены
Управление съемочными сменами и локациями
Базовый URL:
https://studio.imslate.com/api/ Аутентификация
Все запросы к API требуют заголовок аутентификации:
X-API-Key: your_api_token_here
API-токен можно получить в личном кабинете в разделе "API доступ"
Получение списка смен
GET
/shifts Возвращает список смен проекта с поддержкой пагинации и сортировки.
Параметры запроса (Query String)
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project_id | integer | Да | ID проекта |
| page | integer | Нет | Номер страницы (по умолчанию 1) |
| per_page | integer | Нет | Элементов на страницу (макс. 100) |
| date_from | date | Нет | Фильтр по дате начала (YYYY-MM-DD) |
| date_to | date | Нет | Фильтр по дате окончания (YYYY-MM-DD) |
| sort | string | Нет | Поле сортировки: shift_date, title, updated_at |
| order | string | Нет | Направление: asc или desc |
Пример запроса
GET /api/shifts?project_id=123&sort=updated_at&order=desc
X-API-Key: your_api_token_here Пример успешного ответа
{
"status": "success",
"data": {
"shifts": [
{
"id": 45,
"title": "Смена 1: Павильон",
"shift_date": "2023-10-25",
"start_time": "08:00:00",
"end_time": "20:00:00",
"primary_location_id": 12,
"location": {
"id": 12,
"title": "Студия Мосфильм"
},
"callsheets": [ ... ],
"updated_at": "2023-10-20 14:30:00"
}
],
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 15,
"total_pages": 1
}
}
} Получение списка локаций
Важно! Для создания смены необходимо указать ID основной локации (
primary_location_id). Используйте этот метод для получения списка доступных локаций.
GET
/locations Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project_id | integer | Да | ID проекта, для которого нужны локации |
Пример запроса
GET /api/locations?project_id=123
X-API-Key: your_api_token_here Пример ответа
{
"success": true,
"data": [
{
"id": 12,
"title": "Студия Мосфильм",
"address": "г. Москва, ул. Мосфильмовская, 1",
"lat": "55.7261",
"lng": "37.5278"
},
{
"id": 15,
"title": "Лофт на Флаконе",
"address": "г. Москва, ул. Б. Новодмитровская, 36",
"lat": null,
"lng": null
}
]
} Создание смены
POST
/shifts Создает новую съемочную смену в проекте.
Параметры запроса (JSON Body)
| Параметр | Тип | Обязательный | Описание | Валидация |
|---|---|---|---|---|
| project_id | integer | Да | ID проекта | Existing ID |
| title | string | Да | Название смены | max: 255 chars |
| shift_date | date | Да | Дата смены | YYYY-MM-DD |
| primary_location_id | integer | Да | ID основной локации | Получить через GET /locations |
| start_time | time | Нет | Время начала | HH:MM или HH:MM:SS |
| end_time | time | Нет | Время окончания | HH:MM или HH:MM:SS |
| weather | string | Нет | Погода | max: 100 chars |
| notes | string | Нет | Заметки к смене | text |
| callsheets | array | Нет | Массив ID вызывных листов | [1, 2, 3] |
Пример запроса
POST /api/shifts
Content-Type: application/json
X-API-Key: your_api_token_here
{
"project_id": 123,
"title": "Смена 1: Интерьеры квартиры",
"shift_date": "2023-11-15",
"start_time": "07:00",
"end_time": "19:00",
"primary_location_id": 45,
"weather": "Пасмурно, +12°C",
"notes": "Группа собирается у главного входа",
"callsheets": [101, 102]
}
Пример успешного ответа
{
"status": "success",
"message": "Shift created successfully",
"data": {
"id": 88,
"title": "Смена 1: Интерьеры квартиры",
"shift_date": "2023-11-15",
"primary_location_id": 45
}
} Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 201 | Ресурс успешно создан |
| 400 | Ошибка валидации данных |
| 401 | Неверный или отсутствующий API-ключ |
| 403 | Нет доступа к проекту |
| 404 | Проект или локация не найдены |
