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

Введение

Используется для подключения данных из источника REST API.

Установка

Этот плагин является коммерческим. Подробные сведения об активации см. в разделе Руководство по активации коммерческих плагинов

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

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

20240721171420

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

20240721171507

Добавление Collection

Ресурсы RESTful — это Collection в NocoBase, например ресурс Users.

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

Сопоставление в API 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

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

List

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

20251201162457

Get

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

20251201162744

Create

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

20251201163000

Update

Настройка сопоставления интерфейса для обновления ресурса 20251201163058

Destroy

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

20251201163204

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

Отладка API

Сопоставление параметров запроса

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

20251201163500

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

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

Для отладки и просмотра результата ответа можно нажать Try it out.

20251201163635

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

Формат ответа стороннего API может отличаться от стандартного формата NocoBase. Для корректного отображения во внешнем интерфейсе его необходимо преобразовать.

20251201164529

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

20251201164629

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

20240717110051

Преобразование сведений об ошибках

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

20251201170545

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

20251201170732

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

20251201170946 20251201171113

Переменные

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

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

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

20240716221937

20240716221858

Запрос NocoBase

  • Params: параметры запроса URL (Search Params); параметры Params могут различаться для разных интерфейсов;
  • Headers: тело запроса, в основном содержит пользовательские заголовки NocoBase с префиксом X-;
  • Body: тело запроса;
  • Token: API-токен текущего запроса NocoBase.

20251201164833

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

В настоящее время предоставляется только Body ответа.

20251201164915

Доступные переменные для разных интерфейсов:

List

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

Get

ПараметрОписание
request.params.filterByTkОбязательно; обычно ID текущих данных
request.params.filterУсловия фильтрации (должны соответствовать формату 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Условия фильтрации (должны соответствовать формату Filter NocoBase)
request.params.whiteListБелый список
request.params.blacklistЧерный список
request.bodyОбновляемые данные

Destroy

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

Настройка полей

Извлеките метаданные полей (Fields) из данных CRUD-интерфейсов адаптированного ресурса и используйте их как поля Collection.

20240716223636

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

20251201165133

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

20240716224403

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

20240716224704

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

После настройки Collection можно перейти к добавлению блока в интерфейсе.

20240716225120