入口網站 Web API 概觀
注意
自 2022 年 10 月 12 日起,Power Apps 入口網站為 Power Pages。 其他資訊:Microsoft Power Pages 現在已推出 (部落格)
我們很快就會遷移並將 Power Apps 入口網站文件與 Power Pages 文件併合。
入口網站 Web API 可讓您在 Power Apps 入口網站頁面中取得更豐富的使用者體驗。 您可以使用 Web API 從入口網站頁面跨所有 Microsoft Dataverse 資料表執行建立、讀取、更新和刪除動作。 例如,您可以使用入口網站 API (而非入口網站管理應用程式) 來建立新帳戶、更新連絡人或變更產品的資料表權限。
注意
您也可在 Power Pages 中使用入口網站 Web API。 更多資訊:何謂 Power Pages
重要
- 您的入口網站版本必須為 9.3.3.x 或更新版本,才能使本功能運作。
- 入口網站 Web API 旨在入口網站頁面中建立更豐富的使用者體驗。 它不會針對協力廠商服務或應用程式整合進行最佳化。 也不支援使用入口網站 Web API 與其他 Power Apps 入口網站整合。
- 入口網頁 API 作業受限於與資料 — (例如:客戶、連絡人或自訂資料表) 的相關資料表。 設定表格中繼資料或入口設定表格資料 —例如,設定入口網站資料表 (例如:adx_contentsnippet、adx_entityform 或 adx_entitylist) —並不支援入口網站 API。 如需完整清單,請前往此主題後面的不支援的設定資料表。
- 入口網站 Web API 受益於伺服器端快取,因此對 Web API 的後續呼叫比初始呼叫更快。 請注意,清除入口網站伺服器端快取會造成暫時的效能下降。
- 入口網站 Web API 作業需要 Power Apps 入口網站授權。 例如,匿名使用者進行的 Web API 呼叫計入頁面瀏覽量。 經驗證的使用者 (內部或外部) 進行的 Web API 呼叫不計入頁面瀏覽量,但需要適用的授權。 其他資訊:Power Apps 入口網站授權常見問題集
Web API 作業
入口網站 Web API 提供使用 Dataverse API 所能執行的 Dataverse 作業功能子集。 我們將 API 格式保持在盡可能類似的方式下,以減少學習曲線。
注意
Web API 作業區分大小寫。
入口網站中可用的 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 角色授與使用者的資料表權限。
您可以設定資料行權限,以在使用入口網頁 API 時進一步定義資料表中個別資料行的權限。
驗證入口網站 Web API 要求
您不需要包含身份驗證代碼,因為驗證和授權由應用程式工作階段管理。 所有的 Web API 呼叫都必須包括跨網站偽造要求 (CSRF) 權杖。
Using EntitySetName
在您的程式碼中使用入口網站 Web API 來參考 Dataverse 資料表時,您需要使用 EntitySetName,例如若要存取帳戶資料表,則程式碼語法將會使用帳戶的 EntitySetName; /_api/accounts()
。
注意
使用網站設定的資料表邏輯名稱 (例如帳戶)。
您可以遵循下列步驟,來判斷特定資料表的 EntitySetName:
從側面板選取 Dataverse 索引標籤,然後選取該資料表。
選取 ... (命令選項),然後選擇進階、工具及複製集名稱,以將資料表的 EntitySetName 複製到剪貼簿。
一般資料保護法規 (GDPR)
所有要求標頭都將具有用於稽核目的的連絡人識別碼。 對於匿名使用者,這將會傳遞為 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 要求以取得具有多個層級的 1 對多或多對多 資料表權限且定義了上層範圍的資料表,使用者將收到 CDS 錯誤。
為解決此問題,建議的解決方案是在 OData 查詢中使用 FetchXML。
或者,將網站設定 Webapi/<table name>/disableodatafilter 設定為 True
。
重要
將網站設定 Webapi/<table name>/disableodatafilter 變更為 True
可能導致 Web API GET
呼叫的效能變慢。
網站設定可在入口網站版本 9.4.10.74 或更新版本中使用。
下一個步驟
另請參閱
編寫 HTTP 要求並處理錯誤
入口網站使用 Web API 寫入、更新和刪除作業
教學課程:使用入口網站 Web API