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

Введение

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

Установка

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

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

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

20240721171420

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

20240721171507

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

RESTful-ресурс является коллекцией 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

Настройка коллекции источника данных 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: заголовки запроса, главным образом содержащие пользовательские X-параметры NocoBase;
  • 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)

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

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

20240716223636

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

20251201165133

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

20240716224403

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

20240716224704

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

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

20240716225120