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 を使用して演算を実行する」を参照してください。