REST リソースとしてのクラスの追加
2 つのメソッドを含むクラスを追加し、Apex REST を使用して公開しましょう。
- 開発者コンソールで、 をクリックします。
- クラス名として「MerchandiseManager」と入力し、[OK] をクリックします。
-
自動生成されたコードを削除し、次のコードを追加します。
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} - をクリックします。
もうひとこと...
- クラスはグローバルで、@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 をクライアントに返します。