Поделиться через


Использование представлений в построителе API данных

Представления поддерживаются в качестве альтернативы таблицам в DAB. Представление может быть предоставлено через конечные точки REST или GraphQL с минимальной конфигурацией.

Конфигурация

Чтобы отобразить представление, выполните следующие действия.

  • Установите source.type на "view"
  • Задайте source.object полное имя представления
  • Задайте key-fields для уникальной идентификации строки
  • Предоставьте разрешение с помощью действия "read" (и при необходимости "create", "update", "delete", если представление обновляется)

Пример интерфейса командной строки

dab add BookDetail \
  --source dbo.vw_books_details \
  --source.type "view" \
  --source.key-fields "id" \
  --permissions "anonymous:read"

Пример конфигурации

"BookDetail": {
  "source": {
    "type": "view",
    "object": "dbo.vw_books_details",
    "key-fields": [ "id" ]
  },
  "permissions": [
    {
      "role": "anonymous",
      "actions": [ "read" ]
    }
  ]
}

Поддержка REST

  • Поддерживает все команды REST: GET, POST, PUTPATCHDELETE
  • Поведение по умолчанию такое же, как у сущностей, поддерживаемых таблицами.
  • Операции выполняются успешно, только если представление обновляется и заданы соответствующие разрешения

Пример запроса

GET /api/BookDetail/42

Возвращает строку из vw_books_details с id = 42.

Поддержка GraphQL

  • Представление отображается как тип GraphQL
  • Запросы всегда поддерживаются
  • Изменения поддерживаются только в том случае, если представление является обновляемым
  • Соответствует стандартной структуре схемы DAB GraphQL

Разрешения

  • Используйте действие read для представлений только для чтения
  • Использование create, updateи delete только если представление является обновляемым

Ограничения

  • key-fields обязательны
  • Представления не поддерживают связи
  • Разбиение на страницы, фильтрация и сортировка поддерживаются, если представление работает как таблица