Интеграции

API для мобильного приложения

К
Команда CRMservice
обновлено
· 5 мин чтения · 0 просмотров

В CRMservice нет отдельного API для мобилки — мобильное приложение использует тот же REST API, что и веб-CRM (/api/v1/*). Это упрощает разработку: один бэкенд, одна логика, общий аудит.

Авторизация

JWT Bearer token. Получается через /api/v1/auth/login (email+пароль или phone+OTP-код).

Заголовок

``` Authorization: Bearer ```

Альтернатива (query param)

``` GET /api/v1/orders?token= ```

Это fallback для случаев когда невозможно использовать заголовок (например, прямые ссылки на скачивание файлов). Используйте только для GET, не для мутаций.

Жизненный цикл токенов

ТокенСрок жизниКак обновляется
Access token15 минутЧерез refresh_token
Refresh token30 днейНе обновляется, нужен новый login

После истечения access — мобилка делает POST /api/v1/auth/refresh с refresh-токеном и получает свежий access.

Что нужно мобильному приложению

СценарийEndpointПримечание
Список заказовGET /api/v1/ordersФильтр по статусу/дате/клиенту
Карточка заказаGET /api/v1/orders/{id}Полный детальный объект
Смена статусаPUT /api/v1/orders/{id}/statusПроверка required_role_ids
Список задачGET /api/v1/tasksТолько мои
Отметить чек-листPATCH /api/v1/tasks/{id}/checklist/{itemID}/toggle
Открыть сменуPOST /api/v1/shifts/openНа вашей локации
Список клиентовGET /api/v1/clientsПоиск по имени/телефону
веб-сокет уведомленийwss://crm.../api/v1/chat/wsReal-time
ПрофильGET /api/v1/auth/me

Permissions

При запросе бэкенд проверяет права через RBAC v2. У мобильного сотрудника обычно роль «Мастер» или «Менеджер», которая открывает только его задачи / заказы / клиентов.

Если право не дано — 403 permission_denied. Мобильное приложение должно корректно обрабатывать.

Маскирование полей

Если ваша роль не даёт смотреть financial.cost или personal.salary — в ответе API таких полей не будет (маскирующий промежуточный обработчик удаляет их из JSON). Это нужно учитывать на стороне мобилки — поле может прийти null или отсутствовать.

Лимит запросовs

Глобально CRM держит 300 RPS с burst 600. На один токен — мягкий лимит, конкретные числа в разработке. При превышении — 429 rate_limit_exceeded с Retry-After в секундах.

Push-уведомления

В roadmap: интеграция с FCM (Android) и APNS (iOS) для пуш-уведомлений на мобильное устройство о новой задаче / звонке / лиде. Пока недоступно — мобилка должна опрашивать /api/v1/notifications или держать веб-сокет.

Что готовим заранее (для разработчика мобилки)

  1. Получите тестовый тенант — через регистрацию или попросите у нас sandbox.
  2. Тестовый юзер с ролью — у нас можете создать через супер-админа.
  3. Список endpoints — пишите в поддержку, дадим Postman-коллекцию.

Возможные проблемы

  • «401 (не авторизован) после 15 минут» — access истёк. Обновите через refresh.
  • «Все эндпоинты 403» — у токена нет нужных permissions. Проверьте роль юзера.
  • «веб-сокет падает каждые N минут» — переподключайтесь автоматически (стандарт для веб-сокет-клиента).
Поделиться: Telegram WhatsApp
Помогла ли статья?

Вам также может быть полезно

← Все статьи Не нашли ответ? Напишите в чат поддержки внутри CRM — Алиса (AI) ответит сразу.
Спросить Алису