入口網站 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 ,請依照以下步驟操作:
從側面板選取 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、**聯絡人 或 帳戶 範圍為查詢新增更多條件時,如果使用者對具有多層 1 對多 或 多對多資料表權限的資料表呼叫 Web API 要求,就會收到 CDS 錯誤。
要解決此問題,請在 OData 查詢中使用 FetchXML 。