ポータル Web API は、Power Pages サイト内でより豊かなユーザー エクスペリエンスを可能にします。 Web API を使用して、自分の Web ページからすべての Microsoft Dataverse テーブルを作成、読み取り、更新、および削除することができます。 たとえば、ポータル Web API を使用して、 フォーム または 複数のステップのフォーム を使用せずに、新しいアカウントを作成したり、連絡先を更新したりできます。
Web API は、 /_api ルート ( https://yoursite.powerappsportals.com/_api/accounts など) を使用し、Dataverse Web API と同様の RESTful パターンに従います。
重要
- ポータル ページ内で豊かなユーザー体験を作成するためにポータル WebAPI を構築できます。 サード パーティのサービスやアプリケーションの統合に対しては最適化されていません。 ポータル 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ライセンスに関する FAQ を参照してください。
- ポータル Web API を使用した アクション と 関数 の呼び出しはサポートされていません。
Web API の操作
ポータル WebAPI は、Dataverse API を使用して実行できる Dataverse 操作のサブセット機能を提供します。 API 形式は、学習コストを下げるために可能な限り類似した形式です。
注意
Web API の操作では大文字と小文字が区別されます。
Power Pages で利用可能な Web API 操作
WebAPI のサイト設定
重要
Webapi/<table-name>/fields サイト設定でのワイルドカード値 (*) のサポートは非推奨となりました。
サイトに必要な列のコンマ区切りのリストで*を置き換えます。 明示的な列名を構成するまで、* で構成されたテーブルに対する Power Pages Web API 要求は失敗します。
サイトで portals Web API を有効にするには、公開する各テーブルのサイト設定を構成します。 Web API で使用できる列は、サイト設定に一覧表示するか、Dataverse システム ビューを使用するか、両方のメソッドを組み合わせることによって定義できます。
注意
これらの設定には、テーブル 論理名 ( アカウントなど) を使用します。
| サイト設定の名前 | 説明 |
|---|---|
Webapi/<table-name>/enabled |
<テーブル名> の WebAPI を有効または無効にします。 既定: False 有効な値: True、False |
Webapi/<table-name>/fields |
Web API で使用できる列論理名のコンマ区切りリストを定義します。 たとえば、「 name,accountnumber,telephone1 」のように入力します。 この設定は、 Webapi/<table-name>/UseFieldsFromView が True に設定されていて、構成されたシステム ビューに少なくとも 1 つの有効な列が含まれている場合を除き、必須です。 ワイルドカード値 (*) は非推奨です。 |
Webapi/<table-name>/UseFieldsFromView |
Trueに設定すると、Power Pages Web API Columns 列という名前の Dataverse システム ビューの列が Web API 経由で利用可能になります。
既定値:False。
有効な値:True、 False。
Webapi/<table-name>/fieldsも設定されている場合、両方のソースの列が結合されます。 |
Webapi/error/innererror |
InnerError を有効または無効にします。 既定: False 有効な値: True、False |
たとえば、認証されたユーザーがこのエンティティのレコードを作成、更新、削除できる Case テーブルの Web API を公開するには、次の表に示すサイト設定を使用します。
| サイト設定の名前 | サイト設定値 |
|---|---|
| Webapi/incident/enabled | 正 |
| Webapi/incident/fields | attr1、attr2、attr3 |
システム ビューを使用して Web API 列を構成する
システム ビューを使用すると、作成者はサイト設定でコンマ区切りのリストを維持することなく、ポータルの Web API で使用できる列を管理できます。
- Power Pages デザイン スタジオで、データ ワークスペースを開きます。
- テーブルを選択し、[ ビュー ] タブを選択し、パブリック システム ビューを作成または編集します。
- ビューに Power Pages Web API Columns という名前を付けます。
- サイトで必要な列をビューに追加し、ビューを保存して発行します。
- ポータル管理アプリで、Web サイトの
Webapi/<table-name>/UseFieldsFromViewサイト設定を作成し、その値をTrueに設定します。 -
Webapi/<table-name>/enabledがTrueに設定されていることを確認します。
注意
- ビューに表示されるプライマリ テーブルの列のみが含まれます。 関連テーブルの列は含まれません。 フィルター処理または並べ替えにのみ使用される列は、ビューにも表示されない限り含まれません。
- 参照列の場合は、Web API 要求で対応する OData 参照プロパティを使用します。 プロパティ名は、
_<column-logical-name>_value形式を使用します。 たとえば、primarycontactid参照列は_primarycontactid_valueとして返されます。 - システム ビューの変更は、Web API で使用できるようになるまで最大 5 分かかる場合があります。
Webapi/<table-name>/fieldsとWebapi/<table-name>/UseFieldsFromViewの両方が構成されている場合、Web API は、Webapi/<table-name>/fieldsに一覧表示されている列を、そのテーブルの Power Pages Web API 列システム ビューの有効な列と結合します。
重要
-
Webapi/<table-name>/UseFieldsFromViewサイト設定は、Power Pages サイト バージョン 9.8.8.x 以降で使用できます。 -
*でのワイルドカード値 (Webapi/<table-name>/fields) のサポートは非推奨となりました。 明示的な列名、Power Pages Web API 列システム ビュー、またはその両方を使用します。
ポータル Web API のセキュリティ
テーブル権限を使用して、ポータルで個々のレコードのレコード ベースのセキュリティを構成できます。 ポータル Web API は、テーブル (エンティティ) レコードにアクセスし、関連付けられている Web ロールを通じてユーザーに付与されるテーブルのアクセス許可に従います。
ポータル Web API を使用しているときに、テーブル内の個々の列に対する権限をさらに定義するように列 のアクセス許可 を構成できます。
ポータル Web API 要求の認証
アプリケーションのセッションが認証と認可を管理するため、認証コードを含める必要はありません。 すべての Web API 呼び出しには、クロスサイト リクエスト フォージェリ (CSRF) トークンが含まれている必要があります。
EntitySetName の使用
コードでポータル Web API を使用して Dataverse テーブルを参照する場合は、 EntitySetName を使用します。 たとえば、アカウント テーブルにアクセスするには、コード構文で EntitySetName の accounts を使用します; /_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
Limitations
カスタム アクティビティ テーブルは、createdon テーブルから基本列(activitypointer、subject、description、activityid など)を継承します。
Webapi/<table-name>/fieldsを使用してカスタム アクティビティ テーブルの Web API 列を構成する場合、Power Pages Web API 列システム ビュー ($select) には、継承された列だけでなく、そのテーブルに直接定義された少なくとも 1 つの列が含まれます。
継承された activitypointer 列のみを構成した場合、Web API はテーブル固有の列の選択を検出できません。 その結果、要求はワイルドカード (*) として扱われ、フィールドを明示的に構成した場合でも、次のエラーが返されます。 Attribute All Columns is not enabled for Web Api。
推奨事項: カスタム アクティビティ テーブルに直接定義されている少なくとも 1 つの列 ( ポータル コメント/adx_portalcommentなど) と、継承された列を含めます。
既知の問題
ユーザーは、Parental、Contact、または GET スコープがクエリにさらに条件を追加するときに、複数レベルの一対多または多対多テーブル権限を持つテーブルに対して Web API 要求を呼び出すと、CDS エラーを受け取ります。
この問題を解決するには、OData クエリで FetchXML を使用してください。