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

ポータルで 利用可能な Web API 操作 を使用できます。 Web API 操作は、HTTP リクエストとレスポンスで構成されています。 この記事では、HTTP 要求で使用できるサンプルの読み取り操作、メソッド、URI、サンプル JSON について説明します。

前提条件

  • ポータルのバージョンは 9.4.1.x 以上である必要があります。

  • Web API 操作のテーブルとフィールドを有効にします。 詳細:Web API のサイト設定

  • ポータル Web API は、テーブル レコードにアクセスし、関連した Web ロール からユーザーに与えられたテーブルのアクセス許可に従います。 正しいテーブル アクセス許可を構成していることを確認してください。 詳細: Web ロールを作成する

レコードをクエリする

次の例では、取引先企業レコードをクエリします。

操作 Method URI
テーブル レコードを取得する GET [Portal URI]/_api/accounts

例:
https://contoso.powerappsportals.com/_api/accounts

サンプル応答

{
"value": [
    {
    "@odata.etag": "W/\"1066412\"",
    "name": "Fourth Coffee (sample)",
    "accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
    },
    {
    "@odata.etag": "W/\"1066413\"",
    "name": "Litware, Inc. (sample)",
    "accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
    }
]
}

$select$top システム クエリ オプションを使って、最初の 3 つのアカウントの name プロパティを返します。

操作 Method URI
最初の 3 つのエンティティ レコードを取得する GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

用例:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

取引先企業 ID を使用して取引先企業を取得します。

操作 Method URI
レコードの特定のプロパティを取得する GET [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

用例:
https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

サンプル応答

{
    "@odata.etag": "W/\"1066414\"",
    "name": "Adventure Works (sample)",
    "accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}

システム クエリ オプションの適用

エンティティ セットのために URL に追加する各システム クエリ オプションは、クエリ文字列の構文を使用して追加されます。 最初のクエリは [?] の後に追加され、それ以降のクエリ オプションは [&] を使用して分離されます。 すべてのクエリ オプションは、次の例のように大文字と小文字が区別されます。

Method URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

用例:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

特定のプロパティの要求

$select システム クエリ オプションを使用して、以下の例に示すように、返されるプロパティを制限します。

Method URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

用例:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

重要

これはパフォーマンスのベスト プラクティスです。 プロパティが指定されておらず、Webapi/<table name>/fields サイト設定値を * に構成した場合、すべてのプロパティは $select を使用して返されます。 プロパティが指定されていない場合、エラーが返されます。

結果のフィルター

$filter システム クエリ オプションを使用して、行が返される条件を設定します。

標準フィルタ演算子

Web API は、以下の表にリストされる標準 OData フィルター演算子をサポートしています。

Operator 内容
比較演算子
eq 等しい $filter=revenue eq 100000
ne 等しくない $filter=revenue ne 100000
gt より大きい $filter=revenue gt 100000
ge 以上 $filter=revenue ge 100000
lt より小さい $filter=revenue lt 100000
le 以下 $filter=revenue le 100000
論理演算子
and 論理積 $filter=revenue lt 100000 and revenue gt 2000
or 論理和 $filter=contains(name,'(sample)') or contains(name,'test')
not 論理否定 $filter=not contains(name,'sample')
グループ化演算子
( ) 優先順位によるグループ化 (contains(name,'sample') or contains(name,'test')) and revenue gt 5000

標準クエリ機能

Web API では、以下の標準 OData 文字列クエリ機能がサポートされています。

関数
が次の値を含む $filter=contains(name,'(sample)')
指定の値で終わる $filter=endswith(name,'Inc.')
指定の値で始まる $filter=startswith(name,'a')

結果を並べ替える

項目が返される順番を、$orderby システム クエリ オプションを使用して指定します。 asc または desc サフィックスを使用して、それぞれ昇順または降順を指定します。 接尾辞が適用されない場合、既定は昇順です。 以下の例では、取引先企業の名前および売り上げプロパティを、売り上げを昇順で、名前を降順で取得します。

Method URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

用例:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

結果の集計およびグループ化

$apply, を使用することにより、次の例に示すように、データを動的に集約およびグループ化できます。

シナリオ
クエリ内の一意のステータスのリスト accounts?$apply=groupby((statuscode))
予想値合計の集計 opportunities?$apply=aggregate(estimatedvalue with sum as total)
予想値およびステータスに基づく取引の平均サイズ opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue)
ステータスに基づく予測値の合計 opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total))
アカウント名ごとの営業案件の売上合計 opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total))
「WA」 の取引先企業の取引先責任者名 accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
最後に作成されたレコードの日時 accounts?$apply=aggregate(createdon with max as lastCreate)
最初に作成されたレコードの日時 accounts?$apply=aggregate(createdon with min as firstCreate)

行数の取得

$count システム クエリ オプションを True の値と共に使用して、フィルター条件と一致するエンティティ数を最大 5000 含めます。

Method URI
GET [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

用例:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

サンプル応答

{
"@odata.count": 10,
"value": [
    {
    "@odata.etag": "W/\"1066412\"",
    "name": "Fourth Coffee (sample)",
    "accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
    },
    {
    "@odata.etag": "W/\"1066413\"",
    "name": "Litware, Inc. (sample)",
    "accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
    },
    {
    "@odata.etag": "W/\"1066414\"",
    "name": "Adventure Works (sample)",
    "accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
    }
]
}

カウント以外のデータを返さないようにするには、$count を任意のコレクションに適用して、値のみを取得します。

Method URI
GET [Portal URI/_api/accounts/$count

用例:
https://contoso.powerappsportals.com/_api/accounts/$count

サンプル応答

3

列の比較

次の例は、Web API を使用して列を比較する方法を示しています。

Method URI
取得 [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname

用例:
https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname

ナビゲーション プロパティの $expand システム クエリ オプションを使用して、関連エンティティからどのデータが返されるかをコントロールします。

以下の例は、すべての取引先企業レコードの取引先担当者を取得する方法を示しています。 関連する取引先担当者レコードの場合、contactid および fullname のみを取得します。

Method URI
取得 [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

用例:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

サンプル応答

{
"value": [
    {
    "@odata.etag": "W/\"1066412\"",
    "name": "Fourth Coffee (sample)",
    "accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "primarycontactid": {
        "contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "fullname": "Yvonne McKay (sample)"
        }
    },
    {
    "@odata.etag": "W/\"1066413\"",
    "name": "Litware, Inc. (sample)",
    "accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "primarycontactid": {
        "contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "fullname": "Susanna Stubberod (sample)"
        }
    }
]
}

コレクション値ナビゲーション パラメーターを拡張してエンティティ セットの関連テーブルを取得すると、データがある場合、1 レベルの深さのみ返されます。 それ以外の場合、コレクションは空の配列を返します。

Method URI
GET [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

用例:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

次の例では、単一値とコレクション値の両方のナビゲーション プロパティを使用して、エンティティセットの関連エンティティを拡張する方法を示します。

Method URI
GET [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

用例:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

次のステップ

ポータルは、Web API を使用して操作を書き込み、更新、および削除します

参照

ポータル Web API の概要
チュートリアル: ポータル Web API を使用する
列のアクセス許可を構成する

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。