门户 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,例如,访问客户表,代码语法将使用客户/_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 或更高版本中使用站点设置。