门户 Web API 概述

通过门户 Web API,可在 Power Pages 站点内实现更丰富的用户体验。 您可以使用 Web API 从网页跨所有 Microsoft Dataverse 表执行创建、读取、更新和删除操作。 通过使用门户 Web API,无需使用窗体多步窗体即可创建新帐户和更新联系人。

重要提示

  • 您的 Power Pages 站点版本必须为 9.3.3.x 或更高版本才能使用此功能
  • 构建门户 Web API 是为了能够在门户页面内营造丰富的用户体验。 没有为第三方服务或应用程序集成对其进行优化。 也不支持使用门户 Web API 与其他 Power Pages 站点集成。
  • 门户 Web API 操作仅限于与数据相关的表,例如客户、联系人或自定义表。 门户 Web API 不支持配置表元数据或门户配置表数据,例如配置 adx_contentsnippet、adx_entityform 或 adx_entitylist 之类的门户表。 有关完整列表,请转到本主题后面的不受支持的配置表
  • 门户 Web API 受益于服务器端缓存,因此对 Web API 的后续调用比初始调用更快。 请注意,清除门户服务器端缓存会导致暂时的性能下降。
  • 门户 Web API 操作需要 Power Pages 许可证。 例如,匿名用户进行的 Web API 调用针对匿名用户产能计数。 经过身份验证的用户(内部或外部)进行的 Web API 调用不会针对页面视图计数,但需经过身份验证的适用用户容量许可证。 详细信息:Power Pages 许可常见问题

Web API 操作

门户 Web API 为可使用 Dataverse API 执行的 Dataverse 操作提供了功能子集。 我们已保持 API 格式尽可能相似,以缩短学习曲线。

备注

Web API 操作区分大小写。

Power Pages门提供的 Web API 操作

备注

不支持使用门户 Web API 调用操作函数

Web API 的站点设置

您必须启用站点设置才能为您的门户启用门户 Web API。 您还可以配置字段级 Web API,以确定可以或不能使用门户 Web API 修改的表字段。

备注

使用这些设置的表逻辑名称(例如,客户)。

站点设置名称 说明
Webapi/<table name>/enabled 为 <table name> 启用或禁用 Web API。
默认值:False
有效值:TrueFalse
Webapi/<table name>/fields 定义可使用 Web API 修改的以逗号分隔的属性列表。
可能的值:
- 所有属性:*
- 特定属性:attr1,attr2,attr3
注意:该值必须是星号 (*) 或逗号分隔的字段名称列表。
重要提示:这是必需进行的站点设置。 当缺少此设置时,您将看到“未定义此实体的字段”错误消息。
Webapi/error/innererror 启用或禁用 InnerError。
默认值:False
有效值:TrueFalse
Webapi/<table name>/disableodatafilter 启用或禁用 OData 筛选器。
默认值:False
有效值:TrueFalse。有关详细信息,请参阅已知问题。 可在门户版本 9.4.10.74 或更高版本中使用站点设置。

备注

站点设置必须设置为有效才能使更改生效。

例如,为了为允许经过身份验证的用户对此实体执行创建、更新和删除操作的案例表公开 Web API,下表中显示了相关站点设置。

站点设置名称 站点设置值
Webapi/incident/enabled
Webapi/incident/fields attr1、attr2、attr3

门户 Web API 的安全性

您可以使用表权限为门户中的单个记录配置基于记录的安全性。 门户 Web API 访问表记录(实体),并遵循通过关联的 Web 角色授予用户的表权限。

您可以配置列权限以在使用门户 Web API 时进一步定义对表中各个列的特权。

对门户 Web API 请求进行验证

您不需要包含身份验证代码,因为身份验证和授权由应用程序会话管理。 所有 Web API 调用都必须包括跨网站请求伪造 (CSRF) 令牌。

使用 EntitySetName

在代码中使用门户 Web API 引用 Dataverse 表时,您需要使用 EntitySetName,例如,访问客户表时,代码语法将使用 accounts; /_api/accounts() 的 EntitySetName。

备注

使用站点设置的表逻辑名称(例如,客户)。

您可以按照以下步骤确定特定表的 EntitySetName

  1. 转到 https://make.powerapps.com

  2. 从侧面板中选择 Dataverse 选项卡并选择表。

  3. 选择 ...(命令选项),然后选择高级工具复制集名称将表的 EntitySetName 复制到剪贴板。

    如何找到 Dataverse 表的 EntitySetName。

隐私法律与法规

所有请求头都将具有用于审核目的的联系人 ID。 对于匿名用户,系统会将其作为 null 进行传递。

如果启用了审核记录,则用户可以查看 Office 365 审核日志中的所有审核事件。

Office 365 审核日志。

详细信息:
启用和使用活动记录功能
导出、配置和查看审核日志记录

不支持的配置表

门户 Web API 不能用于以下配置表:

adx_contentaccesslevel

adx_contentsnippet

adx_entityform

adx_entityformmetadata

adx_entitylist

adx_entitypermission

adx_entitypermission_webrole

adx_externalidentity

adx_pagealert

adx_pagenotification

adx_pagetag

adx_pagetag_webpage

adx_pagetemplate

adx_portallanguage

adx_publishingstate

adx_publishingstatetransitionrule

adx_publishingstatetransitionrule_webrole

adx_redirect

adx_setting

adx_shortcut

adx_sitemarker

adx_sitesetting

adx_urlhistory

adx_webfile

adx_webfilelog

adx_webform

adx_webformmetadata

adx_webformsession

adx_webformstep

adx_weblink

adx_weblinkset

adx_webnotificationentity

adx_webnotificationurl

adx_webpage

adx_webpage_tag

adx_webpageaccesscontrolrule

adx_webpageaccesscontrolrule_webrole

adx_webpagehistory

adx_webpagelog

adx_webrole_systemuser

adx_website

adx_website_list

adx_website_sponsor

adx_websiteaccess

adx_websiteaccess_webrole

adx_websitebinding

adx_websitelanguage

adx_webtemplate

已知问题

父级联系人账户范围在查询中添加了附加条件时,如果用户调用 GET Web API 请求处理具有一对多多对多表权限的多级权限的表,则会出现 CDS 错误。

为了解决此问题,建议的解决方案是在 OData 查询使用 FetchXML

或者,将网站设置 Webapi/<table name>/disableodatafilter 设置为 True

重要提示

如果将网站设置 Webapi/<table name>/disableodatafilter 更改为 True,则可能会导致 Web API GET 调用性能降低。

可在门户版本 9.4.10.74 或更高版本中使用站点设置。

下一步

使用门户 Web API 查询数据

另请参见