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」オブジェクトに挿入します。
- 文字列型のステータス、優先度、件名の 3 つのパラメータを使用して Post_Method を作成します。
- これらのパラメータを渡して「Case」オブジェクトを作成します。
- 挿入 DML を使用して、Salesforce の「Case」オブジェクトにレコードを挿入します。
グローバル クラス 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 メソッドに使用されます。