# Навигация:
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
}