Общие сведения о логике сервера

Логика сервера Power Pages позволяет разработчикам безопасно запускать JavaScript на сервере, добавляя расширяемость непосредственно в среду выполнения сайта.
 
Так как логика сервера выполняется на сервере, она скрыта от браузера и защищена веб-ролями и разрешениями таблицы. Вы добавляете логику в студию разработки Power Pages и создаете ее с помощью Visual Studio Code, которая предоставляет IntelliSense и проверку во время компиляции.

Dataverse хранит код и конфигурацию, поэтому логика сервера получает преимущества от того же конвейера управления жизненным циклом и развертывания, что и другие компоненты Power Pages.

Поток логики сервера

Поддержка языков

Логика сервера позволяет разработчикам писать собственный код JavaScript, соответствующий стандарту ECMAScript 2023 без поддержки API браузера (например, API fetch DOM или XMLHttpRequest). Некоторые небезопасные или ограниченные шаблоны также блокируются для обеспечения безопасного выполнения. Дополнительные сведения см. в разделе Ограничения при создании серверной логики.

Что можно сделать с помощью логики сервера

Логика сервера в Power Pages позволяет разработчикам и разработчикам перемещать критически важные операции из браузера на сервер для улучшения управления, масштабируемости и безопасности. Он позволяет сайту выполнять сложные задачи и интеграции без предоставления конфиденциальной логики или данных на стороне клиента.

С помощью логики сервера можно:

  • Подключение к внешним службам и API: безопасная интеграция с REST API, Функции Azure или другими бизнес-системами для обмена данными, активации действий или получения динамической информации.
  • Выполняйте безопасные операции с данными: выполняйте операции в Dataverse, такие как запрос, обновление или удаление записей на сервере, последовательно применяя бизнес-логику и проверку.
  • Запустите пользовательскую логику и преобразования: обрабатывайте или видоизменяйте данные перед их возвратом клиенту. Например, вычислите суммы, проверьте бизнес-правила или обогатите данные с помощью внешних источников.
  • Возвращайте обработанные ответы на страницы: отправляйте только необходимые и отфильтрованные данные на страницы клиента, обеспечивая более быстрое отображение и уменьшение объема данных.
  • Упрощение безопасной проверки подлинности: управляйте учетными данными службы и ключами API на сервере, а не в клиентском коде, поддерживая безопасные и соответствующие методики интеграции.

Преимущества использования логики сервера

Логика сервера обеспечивает расширяемость корпоративного уровня для Power Pages, помогая организациям создавать более безопасные, масштабируемые и обслуживаемые веб-интерфейсы.

Основные преимущества:

  • Улучшенная безопасность: выполнение бизнес-логики, секретов и ключей API на сервере — никогда не предоставляйте их в браузере или конечным пользователям.
  • Гибкость интеграции. Простое подключение Power Pages к внешним системам, включая функции Azure, REST API, действия Dataverse и бизнес-службы.
  • Улучшенная производительность и эффективность: разгрузка тяжелых вычислений, проверок и обработки данных на сервер, снижение нагрузки на стороне клиента и повышение скорости реагирования на страницы.
  • Согласованность между каналами: применение той же логики на веб-страницах, формах и интеграции, обеспечение единообразной проверки и поведения данных во всем приложении.
  • Централизованное обслуживание: обновление или уточнение логики в одном месте без повторного развертывания или редактирования нескольких клиентских скриптов или страниц.

Защита логики сервера

Чтобы выполнить код в логике сервера, пользователи должны иметь соответствующие разрешения, настроенные создателем. Доступ регулируется веб-ролями и разрешениями таблицы, которые также определяют, может ли логика сервера получить доступ к определенным таблицам.

API аутентификации логики сервера

Вам не нужно включать пользовательский код проверки подлинности. Проверка подлинности и авторизация управляются сеансом приложения. Все вызовы API логики сервера должны включать токен подделки межсайтовых запросов (CSRF).

Настройка управления для вызовов внешних служб

Логика сервера может подключаться к внешним ИНТЕРФЕЙСАм REST API, функциям Azure и другим бизнес-системам для выполнения интеграции на стороне сервера. Чтобы предотвратить утечку данных, администраторы арендаторов могут блокировать исходящие HTTP-вызовы, которые логика сервера выполняет для каждого сайта в отдельности. Когда эта политика управления применяется, любая исходящая попытка HTTP-вызова со стороны логики сервера завершится сбоем. Дополнительные сведения см. в статье об отключении вызовов внешних служб из логики сервера.

Параметры сайта

Используйте следующие необязательные параметры сайта, чтобы настроить логику сервера:

Имя Description Default
СерверЛогика/Включено Включение и отключение функции true
ServerLogic/AllowedDomains Ограничение того, какие внешние домены можно вызывать Все домены разрешены
ServerLogic/TimeoutInSeconds Максимальное время выполнения (в секундах). Время ожидания может быть увеличено до 240 секунд 120
ServerLogic/AllowNetworkingToAllDomains Разрешить сетевое взаимодействие между доменами True

URL-адрес API логики сервера

Создайте URL-адрес API с помощью этого формата:

https://<site-url>/_api/serverlogics/<server-logic-name>  
Пример:

https://contoso.powerappsportals.com/_api/serverlogics/exchangerate

 

Поддерживаемые методы HTTP

Логика сервера поддерживает стандартные методы HTTP для выполнения операций с данными или взаимодействия с внешними службами. Каждый метод сопоставляется с функцией, определенной в коде логики сервера.

Метод Сигнатура функции Употребление Description
ПОЛУЧИТЬ function get() { } Получение данных.  Используется для получения данных из Dataverse, внешних API или пользовательской бизнес-логики. Идеально подходит для операций только для чтения, в которых изменения данных не вносятся.
ОПУБЛИКОВАТЬ function post() { } Создание записей или отправка новых данных.  Обычно используется для вставки новых записей в Dataverse или отправки данных во внешние системы. Подходит для отправки форм или рабочих процессов, которые должны создавать или активировать действия.
PUT function put() { } Замена или обновление записей.  Обновляет или заменяет всю запись или набор данных. Обычно используется для полных обновлений или сценариев синхронизации.
PATCH функция patch() { } Обновляет часть записи (upsert).  Выполняет частичное обновление существующих данных без замены всей записи. Используйте этот метод, если требуется изменить только определенные поля.
УДАЛИТЬ function del() { } Удаление записей или полей.  Удаляет записи или данные из Dataverse или внешней системы. Следует осторожно использовать, чтобы предотвратить непреднамеренные потери данных.

Следующий шаг

Разработка логики сервера

Объекты сервера
Взаимодействие с таблицами Dataverse с помощью логики сервера