Salesforce で REST API を使用してレコードを取得する

Salesforce De Rest Api Wo Shi Yongshiterekodowo Qu Desuru



このガイドでは、Salesforce のワークベンチを介して REST API を使用して Salesforce レコードを取得する方法について説明します。このガイドの一部として、Workbench の使用方法、sObject を使用して特定のレコードを取得する方法、クエリを使用してオブジェクトから複数のレコードを取得する方法、および Apex カスタム REST API を作成してレコードを取得する方法について説明します。デモンストレーションには Salesforce Standard Case オブジェクトを使用します。 Salesforce バックエンドでケースレコードを作成する必要はありません。 Salesforce が提供する既存の標準ケースレコードを使用します。

ワークベンチの紹介

Workbench は Salesforce.com の公式製品ではありません。ただし、Salesforce アカウントにログインするだけで、Salesforce を利用して、選択、挿入、更新/挿入、更新、削除などのデータ操作操作を実行します (サンドボックスと本番の両方をサポート)。これは、Salesforce で Workbench にログインするための公式 Web サイトです。 https://workbench.developerforce.com/login.php

現時点では、API バージョンは既存のもののみにして、「Salesforce でログイン」ボタンをクリックします。









REST Explorer が必要です。 「ユーティリティ」タブに移動し、「REST Explorer」をクリックします。







次の図のような UI が表示されます。このガイド全体では、Salesforce からレコードを取得するために GET を選択する必要があります。 Salesforce レコードを取得する URI を指定し、「実行」ボタンをクリックする必要があります。



Salesforce ID を使用して特定のレコードを取得する

Salesforce レコード ID に基づいて、Salesforce のレコード全体を取得できます。次のように URI を設定する必要があります。

/ サービス / データ / v56.0 / オブジェクト / オブジェクトAPI名 / ID

ここで、「objectAPIName」は Salesforce 標準/カスタム オブジェクトで、「id」は Salesforce ID を指します。

戻る:

次のような HTTP/1.1 200 OK の生の応答が JSON 形式で取得されます。

{
「属性」 : {
'タイプ' :
「URL」 :
}
'分野' : 価値、
...
}

例:

この例では、5005i00000W4GM5AAN ケース レコードを取得します。

タイプ: / サービス / データ / v56.0 / オブジェクト / 場合 / 5005i00000W4GM5AAN

結果:

応答が JSON 形式で生成されていることがわかります。

ここから結果を直接表示することもできます。

クエリで複数のレコードを取得する

Salesforce オブジェクトから複数のレコードを取得します。以前は、URI で sobject を指定しました。ここでは、クエリをパラメータとして受け取るクエリを指定する必要があります。

URI: サービス / データ / v57.0 / クエリ / ? q =SELECT+フィールド 1,フィールド 2,....+from+オブジェクト API 名

クエリ内のキーワードを結合するには、区切り文字として「+」を使用する必要があります。 totalSize を返し、フォルダーに記録します。各レコードのフォルダ名は、[項目 1]、…[項目 n] となります。

例 1:
CaseNumber、ステータス、優先度、説明を含むレコードを Case オブジェクトから返しましょう。

/ サービス / データ / v57.0 / クエリ / ? q =SELECT+ケース番号,ステータス,優先度,説明+from+ケース

結果:

「すべて展開」をクリックすると、すべてのレコードがその属性と値とともに表示されます。

最初と最後のレコードを示します。

例 2:
最初の例で示したように、同じフィールドを持つ 3 つのレコードだけを返してみましょう。

/ サービス / データ / v57.0 / クエリ / ? q =SELECT+ケース番号,ステータス,優先度,説明+from+ケース+制限+ 2

結果:
Case オブジェクトに存在する最初の 2 つのレコードが返されます。

例 3:
「新規」ステータスのレコードを選択するクエリに WHERE 条件を指定してみましょう。

/ サービス / データ / v57.0 / クエリ / ? q =SELECT+ケース番号,ステータス,優先度,説明+from+ケース+場所+ スターテス = '新しい'

結果:

「新規」ステータスのレコードが 5 件存在します。

Apex のカスタム REST リソース

ワークベンチでURIを指定することでSalesforceオブジェクトからレコードを返すSalesforce Apexを利用できます。 Apex で REST を記述するには、Apex クラスの REST API にアクセスするいくつかのアノテーションを利用する必要があります。 Apex クラスがグローバルに静的である必要があることを確認してください。

1. @RestResource アノテーション

このアノテーションは、Apex クラスを REST リソースとして公開することを有効にするために使用されます。ワークベンチで URI を見つけるために使用されるパラメータとして urlMapping を受け取ります。

構文: @RestResource(urlMapping=’/Version/ApexClassName/’)

「バージョン」は V56.0 などのワークベンチのバージョンで、「ApexClassName」は Rest API リソースが関与する Apex クラスです。

2. @HttpGet アノテーション

このアノテーションは、Apex クラスを REST リソースとして公開することを有効にするために使用されます。これは、HTTP GET リクエストがサーバーに送信されるときに呼び出され、指定されたリソースを返します。

構文: @httpGet

例 1: 単一パラメータ

Case オブジェクトのケースから ID、CaseNumber、ステータス、優先度、および発生元を返す「Rest Get」メソッドを含む Apex クラス「RestApi_Get_Record.apxc」を作成します。

@ 残りのリソース ( URLマッピング = '/v56.0/RestApi_Get_Record/' )
グローバル クラス RestApi_Get_Record {

// REST - メソッドの取得
@ httpGet
グローバル静的ケース getCaseDetails ( ) {

// オブジェクトの作成 ために ケースオブジェクト
ケース case_obj = 新しいケース ( ) ;
地図 < 文字列、文字列 > paramsMap = RestContext.request.params;

// 入手 場合 ID
文字列 caseid =paramsMap.get ( '入力ID' ) ;

// SOQL クエリ 戻る ID ,ケース番号,ステータス,優先度,発生元のケース
// Case オブジェクト
case_obj = [ 選択する ID ,CaseNumber,Status,Priority,Origin from Case where Id =:caseid ;
戻る ケース_オブジェクト;
}
}

URI と結果:

ワークベンチに移動し、REST エクスプローラーに移動します。 id を 5002t00000Pdzr2AAB として input_id パラメーターに渡します。

/ サービス / 頂点レスト / v56.0 / RestApi_Get_Record / ? 入力ID =5002t00000Pdzr2AAB

説明:

  • 「case_obj」ケースのオブジェクトを作成します。
  • RestContext.request.params を使用してパラメータを取得します。
  • パラメータ input_id からケース ID を取得し、これを caseid 変数に保存します。
  • 「caseid」ケースの Case オブジェクトから ID、CaseNumber、ステータス、優先度、ケースの発生元を返す SOQL クエリを作成します。
  • case オブジェクト (case_obj) を返します。

例 2: 複数のパラメータ

前の Apex クラスを利用し、ID とともに「ステータス」パラメータを取得します。これら 2 つのパラメータをワークベンチ URI で「&」で区切って指定します。

@ 残りのリソース ( URLマッピング = '/v56.0/RestApi_Get_Record/' )
グローバル クラス RestApi_Get_Record {

// REST - メソッドの取得
@ httpGet
グローバル静的ケース getCaseDetails ( ) {

// オブジェクトの作成 ために ケースオブジェクト
ケース case_obj = 新しいケース ( ) ;
地図 < 文字列、文字列 > id_param = RestContext.request.params;
地図 < 文字列、文字列 > status_param = RestContext.request.params;

// id_param を case_id に取得します
文字列 case_id = id_param.get ( '入力ID' ) ;
// status_param を case_status に取得します。
文字列 case_status =status_param.get ( 'スターテス' ) ;

case_obj = [ 選択する ID ,CaseNumber,Status,Priority,Origin from Case (Id =:case_id および Status =:case_status) ] ;
戻る ケース_オブジェクト;
}
}

URI と結果:

ワークベンチに移動し、REST エクスプローラーに移動します。 URI で input_id を 5002t00000PdzqwAAB として渡し、ステータスを「Closed」として渡します。

/ サービス / 頂点レスト / v56.0 / RestApi_Get_Record / ? 入力ID =5002t00000PdzqwAAB & スターテス =閉店

結論

Workbench を使用して Salesforce REST API を通じて Salesforce レコードを取得する 3 つのシナリオについて説明しました。特定のレコードを返すには、URI のパラメータとして ID を渡して sObject を指定する必要があります。同様に、クエリ パラメーターを渡して特定のレコードを取得します。 Apex を使用すると、単一または複数のパラメータに基づいてレコードを選択する独自の「Get」メソッドを作成できます。