门户 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 修改的表字段。
备注
使用这些设置的表逻辑名称(例如,客户)。
站点设置名称 | 说明 |
---|---|
Webapi/<table name>/enabled | 为 <table name> 启用或禁用 Web API。 默认值: False 有效值: True 、False |
Webapi/<table name>/fields | 定义可使用 Web API 修改的以逗号分隔的属性列表。 可能的值: - 所有属性: * - 特定属性: attr1,attr2,attr3 注意:该值必须是星号 (*) 或逗号分隔的字段名称列表。 重要提示:这是必需进行的站点设置。 当缺少此设置时,您将看到“未定义此实体的字段”错误消息。 |
Webapi/error/innererror | 启用或禁用 InnerError。 默认值: False 有效值: True 、False |
Webapi/<table name>/disableodatafilter | 启用或禁用 OData 筛选器。 默认值: False 有效值: True 、False 。有关详细信息,请参阅已知问题。 可在门户版本 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:
从侧面板中选择 Dataverse 选项卡并选择表。
选择 ...(命令选项),然后选择高级、工具和复制集名称将表的 EntitySetName 复制到剪贴板。
隐私法律与法规
所有请求头都将具有用于审核目的的联系人 ID。 对于匿名用户,系统会将其作为 null
进行传递。
如果启用了审核记录,则用户可以查看 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 或更高版本中使用站点设置。