Salesforce REST API

Salesforce Rest Api



このガイドでは、Workbench の POST および PUT http メソッドを通じて、REST API を使用してレコードを Salesforce に挿入する方法について説明します。このガイドの一部として、Workbench を使用し、sObject を使用して特定のレコードを取得する方法、クエリを使用してオブジェクトから複数のレコードを取得する方法、および Apex カスタム REST API を作成してレコードを取得する方法について説明します。

POSTメソッド

POST は、一度に 1 つまたは複数のレコードを Salesforce に追加する http メソッドです。カスタム Apex REST API を介して、または URI から直接、URI を含むレコードを挿入できます。

Apex のカスタム REST リソース

Apex で REST を記述するには、Apex クラスの REST API にアクセスするいくつかのアノテーションを利用する必要があります。







@HttpPost アノテーション

このメソッドは、Apex メソッドを REST リソースとして公開できるようにする HTTP POST が送信されるときに呼び出されます。次に、新しいリソースを作成します。



構文: @httpPost

例:



REST「POST」メソッドを含む「RestApi_Post_Record.apxc」Apex クラスを作成し、ステータス、優先度、および件名のフィールドを Salesforce「Case」オブジェクトに挿入します。





  1. 文字列型のステータス、優先度、件名の 3 つのパラメータを使用して Post_Method を作成します。
  2. これらのパラメータを渡して「Case」オブジェクトを作成します。
  3. 挿入 DML を使用して、Salesforce の「Case」オブジェクトにレコードを挿入します。
@RestResource(urlMapping='/v56.0/RestApi_Post_Record/')
グローバル クラス RestApi_Post_Record{

// REST - ポストメソッド
@httpPost
global static Case Post_Method(String Priority, String Status,String Subject){
Case case_obj= new Case(Priority=優先度,Status=ステータス,Subject=件名);

// DMLを挿入
case_obj を挿入します。
case_obj を返します。
}
}

URI と結果:

ワークベンチに移動し、REST エクスプローラーに移動します。以下のURIを指定して実行します。



/services/apexrest/v56.0/RestApi_Post_Record/

リクエストボディにデータを指定します。

{
「優先度」:「高」、
'ステータス':'新規',
'件名':'モバイルの問題'
}

Salesforce でレコードを開きます (アプリケーションランチャーから「Case」オブジェクトに移動します)。

URI から単一レコードを直接挿入する

「ユーティリティ」タブの下の REST エクスプローラーに移動し、次の URI を指定し、リクエスト本文の下にこのレコードを指定します。

/services/data/v56.0/sobjects/Case/

リクエスト本文:

{
'優先':'中'、
'ステータス':'新規',
'件名':'Microsoft チーム - 予定されていません'
}

Salesforce の [ケース] タブに移動し、レコードを表示します。

URI から複数のレコードを直接挿入する

一度に複数のレコードを挿入する場合は、次のように URI を指定する必要があります。 /services/data/v56.0/composite/tree/sObject

リクエストボディには、次の形式でレコードが保持されます。

'記録' :[{
'属性' : {'タイプ' : 'オブジェクト', 'referenceId' : 'reference1'},
フィールド:値、
...
...
},{
'属性' : {'タイプ' : 'オブジェクト', 'referenceId' : 'reference1'},
フィールド:値、
...
...
}]
}

Salesforce の「Case」オブジェクトに 2 つのレコードを挿入してみましょう。

URI: /services/data/v56.0/composite/tree/Case/

リクエスト本文:

{
'記録' :[{
'attributes' : {'type' : 'Case', 'referenceId' : 'reference1'},
「優先度」:「高」、
'ステータス':'新規',
'件名':'機械式ローターの設計上の問題',
「タイプ」:「電気」
},{
'attributes' : {'type' : 'Case', 'referenceId' : 'reference2'},
'優先度':'低'、
'ステータス':'新規',
'件名':'停電後の発電機の起動' ,
「タイプ」:「電気」
}]
}

CaseNumber 00001038 と 00001039 の 2 つのレコードが Salesforce に挿入されます。

PUTメソッド

前に説明したように、PUT はレコードの作成/更新に使用される http メソッドです。このガイドでは、このメソッドを利用して、カスタム REST API を使用して新しい Salesforce レコードを作成します。

@httpPut : このメソッドは、HTTP PUT が送信されるときに呼び出され、Apex メソッドを REST リソースとして公開できるようになります。次に、新しいリソースを作成するか、既存のリソースを更新します。

構文: @httpPut

例:

REST の「PUT」メソッドを含む Apex クラス「RestApi_Put_Record.apxc」を作成して、ステータス、優先度、および説明のフィールドを Salesforce の「Case」オブジェクトに挿入します。

@RestResource(urlMapping='/v56.0/RestApi_Put_Record/')
グローバル クラス RestApi_Put_Record{

// REST - Put メソッド
@httpPut
global static Case Put_Method(String Priority, String Status,String Subject){
Case case_obj= new Case(Priority=優先度,Status=ステータス,Subject=件名);

// DMLを挿入
case_obj を挿入します。
case_obj を返します。
}
}

URI と結果:

ワークベンチに移動し、REST エクスプローラーに移動します。以下のURIを指定して実行します。

/services/apexrest/v56.0/RestApi_Put_Record/

リクエストボディにデータを指定します。

{
「優先度」:「高」、
'ステータス':'クローズ',
「件名」:「野菜グラインダーのガイドが必要です」
}

Salesforce でレコードを開きます (アプリケーションランチャーから「Case」オブジェクトに移動します)。

結論

これで、http PUT メソッドと POST メソッドを使用してレコードを Salesforce に挿入できるようになりました。ワークベンチにレコードを直接挿入する方法と、Apex クラスを介してカスタム REST API を使用する方法を学びました。このガイドでは例として Salesforce の「Case」オブジェクトを使用します。 PUT と POST の実際の違いは、POST はデータの挿入に使用されるのに対し、PUT はデータの挿入/更新に使用されることです。 @httpPut アノテーションは PUT メソッドに使用され、@httpPost アノテーションは POST メソッドに使用されます。