ポータル Web API の概要

ポータル 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 要求は失敗します。

ポータルのポータル Web API を有効にするには、サイト設定を有効にします。 ポータル Web API を使用して、ユーザーが変更できる、または変更できないテーブル フィールドを決定するフィールド レベルの Web API を構成することもできます。

注意

これらの設定には、テーブル の論理名 ( アカウントなど) を使用します。

サイト設定の名前 説明
Webapi/<テーブル名>/有効 <テーブル名> の WebAPI を有効または無効にします。
既定:False
有効な値:TrueFalse
Webapi/<テーブル名>/フィールド ユーザーが Web API を使用して変更できる属性のコンマ区切りリストを定義します。
有効な値:
- 特定の属性::attr1,attr2,attr3
重要: これは必須のサイト設定です。 この設定がない場合、「このエンティティにフィールドが定義されていません」 というエラーが表示されます。
Webapi/error/innererror InnerError を有効または無効にします。
既定:False
有効な値:TrueFalse

たとえば、認証されたユーザーがこのエンティティのレコードを作成、更新、削除できる Case テーブルの Web API を公開するには、次の表に示すサイト設定を使用します。

サイト設定の名前 サイト設定値
Webapi/incident/enabled
Webapi/incident/fields attr1、attr2、attr3

ポータル WebAPI によるセキュリティ

テーブルのアクセス許可を使用して、ポータルで個々のレコードのレコード ベースのセキュリティを構成できます。 ポータル Web API は、テーブル (エンティティ) レコードにアクセスし、関連した Web ロール からユーザーに与えられたテーブルのアクセス許可に従います。

列のアクセス許可 を構成して、ポータル Web API の使用中に、テーブル内の個々の列に対する特権をさらに定義します。

ポータル Web API リクエストの認証

アプリケーションのセッションが認証と認可を管理するため、認証コードを含める必要はありません。 すべての Web API 呼び出しには、クロスサイト リクエスト フォージェリ (CSRF) トークンが含まれている必要があります。

EntitySetName の使用

コードでポータル 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、**Contact、または Account スコープによってクエリにさらに条件が追加される場合、複数レベルの 1 対多 または 多対多テーブル権限 が設定されたテーブルに対して Web API リクエストを実行すると、ユーザーに CDS エラーが発生します。

この問題を解決するには、OData クエリで FetchXML を使用します。

次のステップ

Web API ポータルを使用したクエリ データ