GET要求を使用して、一意の識別子を持つリソースとして指定されたレコードのデータを取得します。 テーブル行 (エンティティ レコード) を取得するときに、特定のプロパティを要求したり、ナビゲーション プロパティを展開して、異なるテーブル内の関連レコードからプロパティを返したりすることもできます。
注
テーブル定義の取得の詳細については、「 Web API を使用したテーブル定義のクエリ」を参照してください。
基本的な取得
次の例では、主キーの値が 000000000-0000-0000-0000-0000000000001 の取引先企業エンティティ レコードのデータを返します。
GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)
この例では、取引先企業レコードの全てのプロパティを返しますが、これはパフォーマンスの観点から最適な方法ではありません。 データの取得中に返されるプロパティを制限するには、常に $select システム クエリ オプションを使用する必要があります。 これは、複数行のデータを取得する場合に特に重要です。 詳細: Web API を使用するクエリ データ
特定のプロパティを取得する
GET 要求を使用してデータを取得するときに返されるプロパティを制限するには、プロパティ名のコンマ区切りの一覧で $select システム クエリ オプションを使用します。 必要なプロパティのみを要求することは、パフォーマンスに関する重要なベスト プラクティスです。 返すプロパティを指定しない場合は、すべてのプロパティが返されます。
次の例では、主キー値が 000000000-0000-0000-0000-0000-000000000001 のアカウント エンティティの name プロパティと revenue プロパティを取得します。
要求:
GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)?$select=name,revenue HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
応答:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,revenue)/$entity",
"@odata.etag": "W/\"502186\"",
"name": "A. Datum Corporation (sample)",
"revenue": 10000,
"accountid": "00000000-0000-0000-0000-000000000001",
"_transactioncurrencyid_value":"b2a6b689-9a39-e611-80d2-00155db44581"
}
特定の種類のプロパティを要求すると、より多くの読み取り専用プロパティが自動的に返される可能性があります。
金額を要求すると、 _transactioncurrencyid_valuelookup プロパティ が返されます。 このプロパティにはトランザクション通貨の GUID 値のみが含まれているため、 transactioncurrency EntityType を使用して通貨に関する情報を取得できます。 または、注釈を要求することで、同じ要求でより多くのデータを取得できます。
アドレスの複合属性の一部であるプロパティを要求すると、複合プロパティも取得されます。 たとえば、クエリが連絡先の address1_line1 プロパティを要求した場合、 address1_composite プロパティも返されます。
代替キーを使用してレコードを取得する
エンティティに代替キーが定義されている場合は、一意の識別子の代わりにエンティティを使用して、エンティティを取得、更新、または削除できます。 既定では、エンティティに対して代替キーは構成されません。 代替キーは、組織またはソリューションによって追加された場合にのみ使用できます。
次の文字 /、<、>、*、%、&、:、\\、?、+ を含む代替キーバリューは、現在サポートされていません。
たとえば、 Contact エンティティに、 firstname プロパティと emailaddress1 プロパティの両方を含む代替キー定義がある場合は、これらのキーに対して指定されたデータを含むクエリを使用して連絡先を取得できます。
GET [Organization URI]/api/data/v9.2/contacts(firstname='Joe',emailaddress1='abc@example.com')
代替キー定義にルックアップタイプフィールド (たとえば、primarycontactid エンティティのaccount プロパティ) が含まれている場合は、次の例のように Lookup プロパティを使用してaccountを取得できます。
GET [Organization URI]/api/data/v9.2/accounts(_primarycontactid_value=00000000-0000-0000-0000-000000000001)
ストレージ パーティション内のドキュメントを取得する
パーティションに格納されている エラスティック テーブル内のレコードを取得 する場合は、必ずパーティション キーを指定してください。
1 つのプロパティ値を取得する
単一のプロパティの値のみを取得する必要がある場合は、エンティティ URI にプロパティの名前を追加できます。 返されるデータの量を減らすことは、パフォーマンスのベスト プラクティスです。
次の例では、name エンティティのaccount プロパティの値のみを返します。
要求:
GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
応答:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context":"[Organization URI]/api/data/v9.2/$metadata#accounts(00000000-0000-0000-0000-000000000001)/name",
"value":"Adventure Works (sample)"
}
プロパティの生の値を取得する
JSON ではなくプリミティブ プロパティの生の値を取得するには、URL に /$value を追加します。次に例を示します。
要求:
GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/name/$value HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
応答:
HTTP/1.1 200 OK
Content-Type: text/plain
OData-Version: 4.0
Adventure Works (sample)
ファイルまたは画像データを操作している場合を除き、生の値の使用は一般的ではありません。 詳細情報: Web API を使用して 1 つの要求でファイルをダウンロードします。
ナビゲーション プロパティの値を取得する
ナビゲーション プロパティの名前を個々のエンティティの URI に追加することで、ナビゲーション プロパティまたはルックアップ フィールドの値にアクセスできます。
次の例では、primarycontactid 単一値ナビゲーション プロパティを使用して account の主 contact の fullname を返します。
要求:
GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/primarycontactid?$select=fullname HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
応答:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#contacts(fullname)/$entity",
"@odata.etag": "W/\"500128\"",
"fullname": "Rene Valdes (sample)",
"contactid": "ff390c24-9c72-e511-80d4-00155d2a68d1"
}
コレクション値ナビゲーション プロパティの場合は、関連エンティティへの参照のみを返すか、関連エンティティの数のみを返すように要求できます。
次の例では、要求に /$ref を追加することで、特定のアカウントに関連するタスクへの参照を返します。
要求:
GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/AccountTasks/$ref HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
応答:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#Collection($ref)",
"value":
[
{ "@odata.id": "[Organization URI]/api/data/v9.2/tasks(6b5941dd-d175-e511-80d4-00155d2a68d1)" },
{ "@odata.id": "[Organization URI]/api/data/v9.2/tasks(fcbb60ed-d175-e511-80d4-00155d2a68d1)" }
]
}
次の例では、Account_Tasksが追加されたコレクション値ナビゲーション プロパティ/$count使用して、特定のアカウントに関連するタスクの数を返します。
要求:
GET [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/Account_Tasks/$count HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
応答:
2
注
返される値には、UTF-8 バイト オーダー マーク (BOM) 文字 () が含まれています。これは、これが UTF-8 ドキュメントであることを示します。
ナビゲーション プロパティを展開して関連レコードを取得する
$expand システム クエリ オプションを使用して、関連エンティティから返されるデータを制御します。 詳細情報: テーブルの結合
レコードが取得されてから変更されたかどうかを検出する
パフォーマンスのベスト プラクティスとして、必要なデータのみを要求する必要があります。 エンティティ レコードを以前に取得した場合は、以前に取得したレコードに関連付けられている ETag を使用して、そのレコードに対して条件付き取得を実行できます。 詳細情報: 条件付き取得。
書式設定された値を取得する
エンティティ セットのクエリを実行するのと同じ方法で、個々のレコードの取得に 対して書式設定された値 を要求します。
こちらも参照ください
Web API を使用して演算を実行する
HTTP 要求を作成し、エラーを処理する
Web API を使用したクエリ データ