入口網站 Web API 概觀

入口網站 Web API 可讓 Power Pages 網站內提供更豐富的使用者體驗。 您可以使用 Web API 在網頁中對所有 Microsoft Dataverse 資料表執行建立、讀取、更新和刪除作業。 例如,你可以透過入口網站的網頁 API 建立新帳號或更新聯絡人,無需使用 表單 或 多步驟表單 。

Web API 使用 /_api 路由(例如 https://yoursite.powerappsportals.com/_api/accounts),並遵循類似 Dataverse Web API 的 RESTful 模式。

重要

  • 入口網站 Web API 旨在入口網站頁面中建立更豐富的使用者體驗。 它不會針對協力廠商服務或應用程式整合進行最佳化。 使用 Portal 的 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 作業

入口網站的 Web API 提供可透過 Dataverse API 執行的 Dataverse 作業功能子集。 API 格式盡可能相似,以降低學習曲線。

注意

Web API 操作會區分大小寫。

Power Pages 中可用的 Web API 作業

Web API 的網站設定

重要

網站設定中*對萬用字元值Webapi/<table-name>/fields()的支援已不再被棄用。

請用逗號分隔的欄位清單取代 * 你網站所需的欄位。 Power Pages 網頁 API 對設定為 的*表格請求會失敗,除非你設定明確的欄位名稱。

要啟用入口網站的 Web API,請開啟網站設定。 你也可以透過入口網站的網頁 API 設定欄位層級的 API 來決定使用者可修改或不可修改的資料表欄位。

注意

這些設定使用表格的邏輯名稱(例如帳戶)。

網站設定名稱 描述:
Webapi/<資料表名稱>/enabled 啟用或停用 <資料表名稱> 的 Web API。
預設:False
有效值:True、False
Webapi/<資料表名稱>/fields 定義了使用者可透過 Web API 修改的逗號分隔屬性清單。
可能的值:
- 特定屬性:attr1,attr2,attr3
重要:此設定是必要的網站設定。 缺少此設定時,您會看到「未定義此實體的欄位」的錯誤。
Webapi/error/innererror 啟用或停用 InnerError。
預設:False
有效值:True、False

例如,若要公開 Case 表格的 Web API,驗證使用者可在此建立、更新及刪除該實體的紀錄,請使用下表所示的網站設定。

網站設定名稱 網站設定值
Webapi/incident/enabled 是
Webapi/incident/fields attr1、attr2、attr3

入口網站 Web API 的安全性

你可以透過使用 表格權限,為入口網站中的個別記錄設定基於紀錄的安全。 入口網站 Web API 會存取資料表 (實體) 記錄,並遵循透過相關聯 Web 角色授與使用者的資料表權限。

您可以設定資料行權限,以在使用入口網頁 API 時進一步定義資料表中個別資料行的權限。

驗證入口網站 Web API 要求

您不需要包括驗證代碼,因為應用程式工作階段會管理驗證和授權。 所有 Web API 呼叫都必須包含跨網站偽造要求 (CSRF) 權杖。

使用實體集名稱

在程式碼中使用入口網站的 Web API 來參考 Dataverse 資料表時,請使用 EntitySetName。 例如,要存取 帳戶 資料表,程式碼語法使用 帳戶的 EntitySetName; /_api/accounts()。

注意

使用 網站設定 的資料表邏輯名稱(例如 account)。

要確定特定資料表的 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、**聯絡人 或 帳戶 範圍為查詢新增更多條件時,如果使用者對具有多層 1 對多 或 多對多資料表權限的資料表呼叫 Web API 要求,就會收到 CDS 錯誤。

要解決此問題,請在 OData 查詢中使用 FetchXML 。

下一步

使用入口網站 API 查詢資料