OData を使用してデータのクエリを実行する

完了

OData は、RESTful API を照会するためプロトコルです。 このレッスンでは、Microsoft Dataverse データに対して CRUD 操作を実行するための方法をいくつか説明します。

行の作成

行を作成するには、HTTP POST メソッドを使用します。

POST [Organization URI]/api/data/v9.2/accounts HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
    "name": "Sample Account",
    "creditonhold": false,
    "address1_latitude": 47.639583,
    "description": "This is the description of the sample account",
    "revenue": 5000000,
    "accountcategorycode": 1
}

行の取得

行を取得するには、HTTP GET メソッドを使用します。

次の例では、ID が 00000000-0000-0000-0000-000000000001 であるアカウントを取得します。

GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)

その他の方法は、標準の OData クエリ構文を使用してデータを照会する場合に利用できます。 このプロセスの詳細については、「Web API を使用してテーブル行を取得する」を参照してください。

行の更新

実行する処理に応じて、行を更新するためのメソッドとして、次のいずれかを選択できます。

  • 複数の属性値の更新を実行する場合は、HTTP PATCH メソッドを使用します。 要求の一部として ID 値を指定すると、PATCH メソッドにより、upsert 機能が提供されます。これは、システム間でデータを同期する際の有益な機能です。

  • 単一の属性値を更新する場合は、HTTP PUT メソッドを使用します。 このメソッドは、参照も削除する必要があるため、検索のようなナビゲーション プロパティと共に使用することはできません。

次の例では、アカウント テーブル行を更新します。

PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

{
    "name": "Updated Sample Account ",
    "creditonhold": true,
    "address1_latitude": 47.639583,
    "description": "This is the updated description of the sample account",
    "revenue": 6000000,
    "accountcategorycode": 2
}

更新中のテーブルからデータを取得する場合は、return=representation 要求ヘッダーを使用できます。 返されるプロパティを制御するには、PATCH URL に $select クエリを追加します。 次の例では、ヘッダーが追加され、name、creditonhold、address1 属性のみを含むように $select が修正されています。

要求

PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json; charset=utf-8
Prefer: return=representation

{"name":"Updated Sample Account"}

応答

HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: return=representation
OData-Version: 4.0

{
    "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity",
    "@odata.etag": "W/"536537"",
    "accountid": "00000000-0000-0000-0000-000000000001",
    "accountcategorycode": 1,
    "description": "This is the description of the sample account",
    "address1_latitude": 47.63958,
    "creditonhold": false,
    "name": "Updated Sample Account",
    "createdon": "2023-09-28T23:14:00Z",
    "revenue": 5000000.0000,
    "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"
}

次のコードは、指定された行のアカウントの名前が更新される PUT 要求の例です。

PUT [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

{"value": "Updated Sample Account Name"}

行の削除

行を削除するには、HTTP DELETE メソッドを使用します。 操作は簡単で、次の要求に示すように、削除するテーブル行の URI を指定します。

DELETE [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

その他の操作

Dataverse には、Web API 要求を通じてトリガーできる他の多くの定義済み操作が用意されています。 使用可能な機能全体の一覧については、「Web API を使用して演算を実行する」を参照してください。