Первые шаги с SOBERIS
 # Навигация:
URL: /create/directory-scheme
# Альтернативные пути:
• Главное меню → Схемы → Создать схему справочника
• Страница схем (/schemes) → кнопка "Создать схему справочника" # Название схемы:
Пример: "Categories"
Требования: только латинские символы, от 3 до 100 символов
# Описание:
"Справочник категорий товаров" # Справочники поддерживают ограниченный набор типов данных для оптимизации производительности:
# Доступные типы:
• string - текстовые данные
• number - числа с плавающей точкой
• integer - целые числа
• boolean - логические значения
# Пример полей:
• id: integer (обязательное) 
• name: string (обязательное) 
• code: string 
• active: boolean # Действие:
Кнопка "Сохранить схему" → Подтверждение создания
# Результат:
• Схема сохранена в системе
• Присвоен уникальный versionId
• Доступна для использования в схемах документов
• Отображается в списке схем (/schemes) 
 # Навигация:
URL: /create/document-scheme # Название схемы:
Пример: "Products"
# Описание:
"Схема документов товаров с внешними связями" # Документы поддерживают расширенный набор типов данных, включая внешние ключи:
# Базовые типы:
• string, number, integer, boolean
• object - вложенные объекты
• array - массивы данных
# Типы внешних ключей:
• document FK - ссылка на другой документ
• directory FK - ссылка на справочник
# Пример схемы с внешними связями:
• id: string (обязательное) 
• name: string (обязательное) 
• description: string 
• price: number 
• categoryId: directory FK → Categories 
• parentProductId: document FK → Products 
• specifications: object 
• tags: array 
• active: boolean # Для directory FK (categoryId):
1. Выбираем тип "directory FK" 
2. Указываем целевую схему справочника: "Categories" 
3. Устанавливаем обязательность поля при необходимости
# Для document FK (parentProductId):
1. Выбираем тип "document FK" 
2. Указываем целевую схему документа: "Products" 
3. Настраиваем как необязательное поле (для корневых товаров) 
 # Навигация:
URL: /monitoring/api-keys
# Альтернативные пути:
• Главное меню → Мониторинг → API Keys
• Боковая панель мониторинга → API Keys # Название ключа:
Пример: "ProductsAPI" 
Требования: 3-100 символов, только латинские символы
# Владелец ключа:
Пример: "Development Team" 
Требования: 3-100 символов, только латинские символы # Доступные эндпоинты для API-ключа:
# Транзакционные операции:
• start-transaction - начало транзакции
• finish-transaction - завершение транзакции
# CRUD операции:
• insert-one - добавление записи
• update-one - обновление записи
• delete-one - удаление записи
• search - поиск записей
# Рекомендуемый набор для тестирования:
✓ start-transaction 
✓ finish-transaction 
✓ insert-one
✓ update-one 
✓ search # Создание ключа:
Кнопка "Создать ключ" → Генерация уникального API-ключа
# Важно:
⚠️ Сохраните сгенерированный API-ключ в безопасном месте. После закрытия окна его нельзя будет повторно просмотреть.
# Формат ключа:
Пример: sbrs_api_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p 
 # Навигация:
URL: /specification/
# Выбор схемы:
Products # Авторизация в Swagger UI:
1. Нажать кнопку "Authorize" в интерфейсе Swagger 
2. В поле "Value" ввести созданный API-ключ 
3. Нажать "Authorize" для подтверждения
# Заголовок аутентификации:
SBRS-API-Key: sbrs_api_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p # Эндпоинт:
POST /sbrs-data/insert-one
# Пример тела запроса: {
    "id": 1,
    "name": "Electronics",
    "code": "ELEC",
    "active": true
}
# Ожидаемый ответ:
HTTP 201 Created
{
    "success": true,
    "insertedId": "Categories_1",
    "message": "Record inserted successfully"
} # Эндпоинт:
POST /sbrs-data/insert-one
# Пример тела запроса: {
    "id": "prod-001",
    "name": "Smartphone X1",
    "description": "Latest smartphone model",
    "price": 599.99,
    "categoryId": 1,
    "specifications": {
        "memory": "128GB",
        "display": "6.1 inch"
    },
    "tags": [
        "mobile",
        "electronics",
        "new"
    ],
    "active": true
}
# Валидация внешних ключей:
• categoryId: 1 проверяется на существование в справочнике Categories
• parentProductId: опущен, так как это корневой товар
• Система автоматически проверит целостность ссылок # Эндпоинт:
POST /sbrs-data/search
# Пример поискового запроса: {
    "filters": {
        "categoryId": 1,
        "active": true,
        "price": {
            "$gte": 500,
            "$lte": 1000
        }
    },
    "sort": {
        "price": 1
    },
    "limit": 10,
    "skip": 0
}
# Ожидаемый ответ: {
    "success": true,
    "data": [
        {
            "id": "prod-001",
            "name": "Smartphone X1",
            "price": 599.99,
            "categoryId": 1,
...
        }
    ],
    "totalCount": 1,
    "limit": 10,
    "skip": 0
} # Начало транзакции:
POST /sbrs-data/Products/start-transaction
# Ответ:
{
"success": true,
"transactionId": "tx_1642781234567",
"message": "Transaction started"
}
# Выполнение операций в транзакции:
Все последующие операции: 
- insert-one, 
- update-one, 
- delete-one 
используют transactionId в заголовке: 
X-Transaction-Id: 8c2233c1-eb1a-4ff6-b7f8-f71e3cb5198c
# Завершение транзакции:
POST /sbrs-data/Products/finish-transaction
Headers: X-Transaction-Id: tx_1642781234567
{
"commit": true
}