入口網站 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 作業受限於與資料 (例如,客戶、連絡人或自訂資料表) 相關的資料表。 設定資料表中繼資料或入口網站設定資料表資料 (例如,設定 adx_contentsnippet、adx_entityform 或 adx_entitylist 等入口網站資料表) 時,不支援與入口網站 Web API 搭配使用。 如需完整清單,請前往此主題後面的不支援的設定資料表。
- 入口網站 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/<資料表名稱>/enabled | 啟用或停用 <資料表名稱> 的 Web API。 預設值: False 有效值: True 、False |
Webapi/<資料表名稱>/fields | 定義可使用 Web API 修改的以逗號分隔的屬性清單。 可能的值: - 所有屬性: * - 特定屬性: attr1,attr2,attr3 注意:值必須是星號 (*) 或逗號分隔的欄位名稱清單。 重要:這是必要的網站設定。 當這項設定遺失時,會看到「沒有為這個實體定義欄位」的錯誤。 |
Webapi/error/innererror | 啟用或停用 InnerError。 預設值: False 有效值: True 、False |
Webapi/<資料表名稱>/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 複製到剪貼簿。
隱私權法律和法規
所有要求標頭都將具有用於稽核目的的連絡人識別碼。 對於匿名使用者,這將會傳遞為 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/<資料表名稱>/disableodatafilter 設定為 True
。
重要
將網站設定 Webapi/<資料表名稱>/disableodatafilter 變更為 True
可能會導致 Web API GET
呼叫的效能變慢。
網站設定可在入口網站版本 9.4.10.74 或更新版本中使用。