この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

RestRequest を使用した Apex REST のコードサンプル

次のサンプルでは、RestRequest オブジェクトを使用して、ケースに添付ファイルを追加する方法を示します。cURL による認証についての詳細は、『Force.com REST API 開発者ガイド』「Chatter REST API クイックスタート」セクションを参照してください。このコードでは、バイナリファイルのデータは RestRequest オブジェクトに保存され、Apex サービスクラスはその RestRequest オブジェクトのバイナリデータにアクセスします。
  1. インスタンスに Apex クラスを作成します。そのためには、[設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択します。[新規] をクリックして、次のコードを新しいクラスに追加します。
    1@RestResource(urlMapping='/CaseManagement/v1/*')
    2global with sharing class CaseMgmtService
    3{
    4
    5    @HttpPost
    6    global static String attachPic(){
    7        RestRequest req = RestContext.request;
    8        RestResponse res = Restcontext.response;
    9        Id caseId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
    10        Blob picture = req.requestBody;
    11        Attachment a = new Attachment (ParentId = caseId,
    12                                       Body = picture,
    13                                       ContentType = 'image/jpg',
    14                                       Name = 'VehiclePicture');
    15        insert a;
    16        return a.Id;
    17   }
    18}
  2. コマンドラインウィンドウを開き、次の cURL コマンドを実行して、ケースに添付ファイルをアップロードします。
    curl -H "Authorization: Bearer sessionId" -H "X-PrettyPrint: 1" -H "Content-Type: image/jpeg" --data-binary @file "https://instance.salesforce.com/services/apexrest/CaseManagement/v1/caseId"
    • sessionId を、ログイン応答でメモした <sessionId> 要素に置き換えます。
    • instance<serverUrl> 要素に置き換えます。
    • caseId を、添付ファイルを追加するケースの ID に置き換えます。
    • file を、添付するファイルのパスとファイル名に置き換えます。

    コマンドは次のようになります (sessionId は実際のセッション ID、yourInstance は実際のインスタンス名に置き換えます)。

    1curl -H "Authorization: Bearer sessionId" 
    2-H "X-PrettyPrint: 1" -H "Content-Type: image/jpeg" --data-binary @c:\test\vehiclephoto1.jpg 
    3"https://yourInstance.salesforce.com/services/apexrest/CaseManagement/v1/500D0000003aCts"

    このセクションの cURL の例では、名前空間による Apex クラスを使用していないため、URL に名前空間は含まれません。

    メモ

    Apex クラスは、添付ファイル ID を含む次のような JSON 応答を返します。

    1"00PD0000001y7BfMAI"
  3. 添付ファイルと画像がケースに追加されたことを確認するには、[ケース] に移動し、[すべての進行中ケース] ビューを選択します。ケースをクリックし、添付ファイルの関連リストまでスクロールダウンします。作成した添付ファイルが表示されます。