RestRequest クラス
名前空間
使用方法
System.RestRequest クラスを使用して、REST アノテーションの 1 つを使用して定義される Apex RESTful Web サービスメソッドに要求データを渡します。
例: REST アノテーションが付加されたメソッドを含む Apex クラス
次の例では、Apex の Apex REST API の実装方法を示します。このクラスが公開する GET、DELETE、および POST の 3 つのメソッドはそれぞれ、異なる HTTP 要求を処理します。HTTP 要求を発行して、クライアントからアノテーションが付加されたこれらのメソッドをコールできます。
1swfobject.registerObject("clippy.ApexRESTExample", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17@RestResource(urlMapping='/Account/*')
18global with sharing class MyRestResource {
19
20 @HttpDelete
21 global static void doDelete() {
22 RestRequest req = RestContext.request;
23 RestResponse res = RestContext.response;
24 String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
25 Account account = [SELECT Id FROM Account WHERE Id = :accountId];
26 delete account;
27 }
28
29 @HttpGet
30 global static Account doGet() {
31 RestRequest req = RestContext.request;
32 RestResponse res = RestContext.response;
33 String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
34 Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE Id = :accountId];
35 return result;
36 }
37
38 @HttpPost
39 global static String doPost(String name,
40 String phone, String website) {
41 Account account = new Account();
42 account.Name = name;
43 account.phone = phone;
44 account.website = website;
45 insert account;
46 return account.Id;
47 }
48}RestRequest プロパティ
RestRequest のプロパティは次のとおりです。
requestBody
リクエストボディを返すか、設定します。
署名
public Blob requestBody {get; set;}
プロパティ値
型: Blob
使用方法
Apex メソッドにパラメータがない場合、Apex REST は HTTP リクエストボディを RestRequest.requestBody プロパティにコピーします。パラメータがある場合、Apex REST はデータをそれらのパラメータに並列化しようとします。ただし、データは RestRequest.requestBody プロパティには並列化されません。
requestURI
HTTP 要求文字列内のホスト名の後の文字列をすべて返すか、設定します。
署名
public String requestURI {get; set;}
プロパティ値
型: String
例
たとえば、要求文字列が https://instance.salesforce.com/services/apexrest/Account/ の場合、requestURI は /services/apexrest/Account/ です。
resourcePath
要求の REST リソースパスを返します。
署名
public String resourcePath {get; set;}
プロパティ値
型: String
例
たとえば、Apex REST クラスが /MyResource/* の urlMapping を定義している場合、resourcePath プロパティは /services/apexrest/MyResource/* を返します。