Источник данных REST API

Data source: REST APIStandard Edition+

Введение

Этот плагин позволяет бесшовно интегрировать данные из источников REST API.

Установка

Это коммерческий плагин. Подробные инструкции по активации см. в руководстве: Commercial Plugin Activation Guide

20240323162741

Добавление источника REST API

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

20240721171420

Настройте источник REST API.

20240721171507

Добавление коллекции

В NocoBase RESTful-ресурс сопоставляется с коллекцией, например ресурс Users.

GET /users
POST /users
GET /users/1
PUT /users/1
DELETE /users/1

Эти API-endpoints сопоставляются в NocoBase следующим образом:

GET /users:list
POST /users:create
POST /users:get?filterByTk=1
POST /users:update?filterByTk=1
POST /users:destroy?filterByTk=1

Подробные правила проектирования API в NocoBase см. в документации API.

20240716213344

Подробности см. в главе "NocoBase API - Core".

20240716213258

Конфигурация коллекции для источника данных REST API включает следующее:

Список (List)

Сопоставляет интерфейс просмотра списка ресурсов.

20251201162457

Получение (Get)

Сопоставляет интерфейс просмотра деталей ресурса.

20251201162744

Создание (Create)

Сопоставляет интерфейс создания ресурса.

20251201163000

Обновление (Update)

Сопоставляет интерфейс обновления ресурса. 20251201163058

Удаление (Destroy)

Сопоставляет интерфейс удаления ресурса.

20251201163204

Интерфейсы List и Get обязательны к настройке.

Отладка API

Интеграция параметров запроса

Пример: настройка параметров пагинации для List API. Если сторонний API не поддерживает пагинацию нативно, NocoBase выполнит пагинацию на основе полученных данных списка.

20251201163500

Обратите внимание: применяются только переменные, добавленные в интерфейсе.

Имя параметра стороннего APIПараметр NocoBase
page{{request.params.page}}
limit{{request.params.pageSize}}

Можно нажать "Попробовать", чтобы выполнить отладку и посмотреть ответ.

20251201163635

Преобразование формата ответа

Формат ответа стороннего API может не соответствовать стандарту NocoBase, поэтому перед корректным отображением на фронтенде его нужно преобразовать.

20251201164529

Скорректируйте правила преобразования с учетом формата ответа стороннего API, чтобы выход соответствовал стандарту NocoBase.

20251201164629

Описание процесса отладки

20250418085020

Извлечение сообщения об ошибке

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

20251201170545

Если преобразователь сообщения об ошибке не настроен, NocoBase применит преобразование по умолчанию и преобразует ошибку в сообщение с HTTP-кодом статуса.

20251201170732

После настройки преобразователя сообщения об ошибке в соответствии со стандартом вывода NocoBase фронтенд сможет корректно отображать сообщения об исключениях, возвращаемые сторонним API.

20251201170946 20251201171113

Переменные

Источник данных REST API поддерживает три типа переменных для интеграции API:

  • Пользовательские переменные источника данных
  • Переменные запроса NocoBase
  • Переменные ответа стороннего API

Пользовательские переменные источника данных

20240716221937

20240716221858

Запрос NocoBase

  • Параметры: параметры URL-запроса (Search Params), зависящие от интерфейса.
  • Заголовки: пользовательские заголовки запроса, в основном передающие специфичную X- информацию от NocoBase.
  • Тело: тело запроса.
  • Токен: API-токен текущего запроса NocoBase.

20251201164833

Ответы стороннего API

Сейчас доступно только тело ответа.

20251201164915

Ниже переменные, доступные для каждого интерфейса:

Список (List)

ПараметрОписание
request.params.pageТекущая страница
request.params.pageSizeКоличество элементов на странице
request.params.filterКритерий фильтрации (должен соответствовать формату Фильтр NocoBase)
request.params.sortКритерий сортировки (должен соответствовать формату Сортировка NocoBase)
request.params.appendsПоля для загрузки по требованию, обычно для полей связей
request.params.fieldsВключаемые поля (белый список)
request.params.exceptИсключаемые поля (черный список)

Получение (Get)

ПараметрОписание
request.params.filterByTkОбязательный, обычно ID текущей записи
request.params.filterКритерий фильтрации (должен соответствовать формату Фильтр NocoBase)
request.params.appendsПоля для загрузки по требованию, обычно для полей связей
request.params.fieldsВключаемые поля (белый список)
request.params.exceptИсключаемые поля (черный список)

Создание (Create)

ПараметрОписание
request.params.whiteListБелый список
request.params.blacklistЧерный список
request.bodyИсходные данные для создания

Обновление (Update)

ПараметрОписание
request.params.filterByTkОбязательный, обычно ID текущей записи
request.params.filterКритерий фильтрации (должен соответствовать формату Фильтр NocoBase)
request.params.whiteListБелый список
request.params.blacklistЧерный список
request.bodyДанные для обновления

Удаление (Destroy)

ПараметрОписание
request.params.filterByTkОбязательный, обычно ID текущей записи
request.params.filterКритерий фильтрации (должен соответствовать формату Фильтр NocoBase)

Конфигурация полей

Метаданные полей извлекаются из данных CRUD-интерфейсов адаптированного ресурса и используются как поля коллекции.

20250418085048

Извлечение метаданных поля.

20251201165133

Поля и предварительный просмотр.

20240716224403

Редактирование полей (аналогично другим источникам данных).

20240716224704

Добавление блоков источника данных REST API

После настройки коллекции можно добавить блоки в интерфейс.

20240716225120