Skip to content

Обзор REST API

Базовый URL

https://app.orbita.example/api

Структура эндпоинтов

ГруппаПрефиксОписание
Аутентификация/api/login-*, /api/registerВход, регистрация
Динамические сущности/api/e/{model}CRUD любых объектов
Метаданные сущностей/api/sys/entitiesСтруктура таблиц
Связи/api/sys/relationsM2M-связи между сущностями
Порталы/api/portal/{slug}, /api/admin/portalsПубличные порталы
Настройки/api/sys/settings/globalГлобальные настройки
Уведомления/api/sys/notification_templatesШаблоны уведомлений
Пользователи/api/user, /api/sys/usersУправление аккаунтами
Орг. структура/api/sys/companies, /api/sys/org_unitsКомпании, подразделения
Интеграции/api/sys/incoming_messages, /api/sys/incoming-actionsВходящие события
Тенант/api/tenantУправление рабочим пространством

Аутентификация

Все запросы (кроме публичных эндпоинтов порталов) требуют заголовка:

Authorization: Bearer <token>

Получение токена — см. Аутентификация.

Пагинация

Эндпоинты со списками поддерживают параметры:

GET /api/e/it_requests?page=2&per_page=25

Ответ включает мета-информацию:

json
{
  "data": [ ... ],
  "meta": {
    "current_page": 2,
    "per_page": 25,
    "total": 150,
    "last_page": 6
  }
}

Server-side фильтрация

Для сложных фильтров используйте POST-эндпоинт:

http
POST /api/e/{model}/list-server
Authorization: Bearer <token>
Content-Type: application/json

{
  "filters": [
    { "field": "status", "operator": "=", "value": "new" },
    { "field": "priority", "operator": "=", "value": "high" }
  ],
  "sort": [{ "field": "created_at", "direction": "desc" }],
  "paginate": { "page": 1, "per_page": 20 }
}

Подробнее — в разделе Фильтрация.

Глобальный поиск

http
GET /api/sys/global-search?q=слово
Authorization: Bearer <token>

Ищет по всем индексируемым сущностям. Минимум 2 символа.

Health check

GET /api/ping

Возвращает {"status": "ok"} без авторизации.

Документация Orbita ITSM