Использование ключей API в NocoBase
Это руководство показывает, как использовать ключи API в NocoBase для получения данных на практическом примере «Задачи». Следуйте пошаговой инструкции ниже, чтобы понять полный рабочий процесс.

1 Понимание ключей API
Ключ API — это защищённый токен, который аутентифицирует API-запросы от авторизованных пользователей. Он работает как учётные данные, подтверждающие личность отправителя при доступе к системе NocoBase из веб-приложений, мобильных приложений или серверных скриптов.
В заголовках HTTP-запроса вы увидите формат вида:
Префикс "Bearer" означает, что следующая строка — это аутентифицированный ключ API, используемый для проверки прав запрашивающей стороны.
Типовые сценарии использования
Ключи API обычно применяются в следующих сценариях:
- Доступ для клиентских приложений: веб-браузеры и мобильные прилож ения используют ключи API для аутентификации пользователя, чтобы гарантировать, что только авторизованные пользователи могут получать доступ к данным.
- Выполнение автоматизированных задач: фоновые процессы и планировщики используют ключи API, чтобы безопасно выполнять обновления, синхронизацию данных и операции логирования.
- Разработка и тестирование: разработчики используют ключи API при отладке и тестировании, чтобы имитировать аутентифицированные запросы и проверять ответы API.
Ключи API дают ряд преимуществ безопасности: проверка личности, мониторинг использования, ограничение скорости запросов и предотвращение угроз, обеспечивая стабильную и безопасную работу NocoBase.
2 Создание ключей API в NocoBase
2.1 Активировать плагин Аутентификация: ключи API
Убедитесь, что встроенный плагин Аутентификация: ключи API активирован. После включения в настройках системы появится новая страница конфигурации ключей API.

2.2 Создать тестовую коллекцию
Для демонстрации создайте коллекцию с именем todos со следующими полями:
idtitlecompleted

Добавьте в коллекцию несколько примерных записей:
- поесть
- поспать
- поиграть

2.3 Создать и назначить роль
Ключи API привязаны к ролям пользователей, и система определяет права запроса на основе назначенной роли. Перед созданием ключа API необходимо создать роль и настроить соответствующие разрешения. Создайте роль с названием "API роль для задач" и выдайте ей полный доступ к коллекции todos.

Если при создании ключа API роль "API роль для задач" недоступна, убедитесь, что текущему пользователю назначена эта роль:

После назначения роли обновите страницу и перейдите на страницу управления ключами API. Нажмите "Добавить ключ API", чтобы убедиться, что "API роль для задач" появляется в выборе роли.

Для более строгого контроля доступа рассмотрите создание отдельного пользователя (например, "API пользователь задач") специально для управления и тестирования ключей API. Назначьте этому пользователю роль "API роль для задач".

2.4 Сгенерировать и сохранить ключ API
После отправки формы система покажет сообщение с только что сгенериро ванным ключом API. Важно: сразу скопируйте и безопасно сохраните этот ключ, поскольку по соображениям безопасности он больше не будет отображаться.

Пример ключа API:
2.5 Важные примечания
- Срок действия ключа API определяется настройкой истечения, заданной при создании.
- Генерация и проверка ключей API зависят от переменной окружения
APP_KEY. Не изменяйте эту переменную, иначе все существующие ключи API в системе станут недействительными.
3 Тестирование аутентификации по ключу API
3.1 Использование плагина документации API
Откройте плагин Документация API, чтобы посмотреть методы запросов, URL, параметры и заголовки для каждого API-эндпоинта.

3.2 Понимание базовых CRUD-операций
NocoBase предоставляет стандартные CRUD (Create, Read, Update, Delete) API для манипуляций с данными:
-
Запрос списк:
-
Создание записи:
-
Обновление записи:
-
Удаление записи:
Где:
{baseURL}: URL вашей системы NocoBase{collectionName}: имя коллекции
Пример: для локального экземпляра на localhost:13000 и коллекции todos:
3.3 Тестирование в Postman
Создайте GET-запрос в Postman со следующей конфигурацией:
- URL: эндпоинт запроса (например,
http://localhost:13000/api/todos:list) - Headers: добавьте заголовок
Authorizationсо значением:

Успешный ответ:
Ответ с ошибкой
Устранение неполадок: если аутентификация не проходит, проверьте права роли, привязку ключа API и формат токена.
3.4 Экспорт кода запроса
Postman позволяет экспортировать запрос в различных форматах. Пример команды cURL:

4 Использование ключей API в JS-блоке
NocoBase 2.0 поддерживает написание нативного JavaScript-кода прямо на страницах с использованием JS-блоков. В этом примере показано, как получать данные через API с использованием ключей API.
Создание JS-блока
На странице NocoBase добавьте JS-блок и используйте следующий код, чтобы получить данные списка задач:
Ключевые моменты
- ctx.requireAsync(): динамически загружает внешние библиотеки (например, axios) для HTTP-запросов
- ctx.message: показывает уведомления пользователю (сообщения loading/success/error)
- API Key Authentication: передавайте ключ API в заголовке
Authorizationс префиксомBearer - Response Handling: обрабатывайте возвращённые данные по необходимости (показ, преобразование и т. п.)
5 Итог
В этом руководстве был разобран полный рабочий процесс использования ключей API в NocoBase:
- Настройка: активация плагина ключей API и создание тестовой коллекции
- Конфигурация: создание ролей с нужными правами и генерация ключей API
- Тестирование: проверка аутентификации ключом API в Postman и через плагин документации API
- Интеграция: использование ключей API в JS-блоках

Дополнительные ресурсы:

