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

REST リソースとしてのクラスの追加

2 つのメソッドを含むクラスを追加し、Apex REST を使用して公開しましょう。

  1. 開発者コンソールで、[File (ファイル)] | [New (新規)] | [Apex Class (Apex クラス)] をクリックします。
  2. クラス名として「MerchandiseManager」と入力し、[OK] をクリックします。
  3. 自動生成されたコードを削除し、次のコードを追加します。
    1swfobject.registerObject("clippy.codeblock-0", "9");
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17@RestResource(urlMapping='/Merchandise/*')
    18global with sharing class MerchandiseManager {
    19  
    20    @HttpGet
    21    global static Merchandise__c getMerchandiseById() {
    22        RestRequest req = RestContext.request;        
    23        String merchId = req.requestURI.substring(
    24                                  req.requestURI.lastIndexOf('/')+1);
    25        Merchandise__c result = 
    26                       [SELECT Name,Description__c,Price__c,Total_Inventory__c
    27                        FROM Merchandise__c 
    28                        WHERE Id = :merchId];
    29        return result;
    30    }
    31  
    32    @HttpPost
    33    global static String createMerchandise(String name,
    34        String description, Decimal price, Double inventory) {
    35        Merchandise__c m = new Merchandise__c(
    36            Name=name,
    37            Description__c=description,
    38            Price__c=price,
    39            Total_Inventory__c=inventory);
    40        insert m;
    41        return m.Id;
    42    }
    43}
  4. [File (ファイル)] | [Save (保存)] をクリックします。

もうひとこと...

  • クラスはグローバルで、@RestResource(urlMapping='/Invoice_Statement__c/*') アノテーションを使用して定義されます。REST API として公開する Apex クラスは、グローバルであり、@RestResource アノテーションが付加されている必要があります。@RestResource アノテーションのパラメータである urlMapping は、リソースを一意に識別するために使用され、基本 URL https://instance.salesforce.com/services/apexrest/ に対する相対的 URL を指定します。基本 URL と urlMapping 値は、クライアントが REST 要求で送信する URI を形成します。この場合、urlMapping の値には、ワイルドカード文字のアスタリスクが含まれます。つまり、リソース URI の /Merchandise/ の後には任意の値を含めることができます。このチュートリアルのステップ 3 では、レコードを取得するために URI に ID 値を付加します。
  • クラスには、Apex REST アノテーションで定義された 2 つのグローバル静的メソッドが含まれます。すべての Apex REST メソッドはグローバルに静的である必要があります。
  • 最初のクラスメソッド getMerchandiseById@HttpGet アノテーションを使用して定義されます。
    • @HttpGet アノテーションは、クライアントから HTTP GET 要求が送信されるとコールされる REST API としてメソッドを公開します。
    • このメソッドは、クライアントが要求 URI で送信した ID に対応する商品品目を返します。
    • また、要求と要求 URI を Apex 静的 RestContext クラスを介して取得します。
    • 続いて、URI を解析し、最後の「/ 」の後に渡された値を検出し、SOQL クエリを実行して、この ID の商品レコードを取得します。最後に、このレコードを返します。
  • 2 つ目のクラスメソッド createMerchandise は、@HttpPost アノテーションを使用して定義されます。このアノテーションは、クライアントから HTTP POST 要求が送信されるとコールされる REST API としてメソッドを公開します。このメソッドは、クライアントが送信した指定データを使用して商品レコードを作成します。また、insert DML 操作をコールして、新しいレコードをデータベースに挿入し、新しい商品レコードの ID をクライアントに返します。