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

RestRequest クラス

HTTP 要求から Apex RESTful Web サービスメソッドにデータを渡す場合に使用されるオブジェクトを表します。

名前空間

System

使用方法

System.RestRequest クラスを使用して、REST アノテーションの 1 つを使用して定義される Apex RESTful Web サービスメソッドに要求データを渡します。

例: REST アノテーションが付加されたメソッドを含む Apex クラス

次の例では、ApexApex 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 のコンストラクタは次のとおりです。

RestRequest()

System.RestRequest クラスの新しいインスタンスを作成します。

署名

public RestRequest()

RestRequest プロパティ

RestRequest のプロパティは次のとおりです。

RestRequest List プロパティと Map プロパティは参照専用ですが、内容は参照・更新が可能です。変更するには、Collection メソッドを直接コールするか、前の表に示した、関連付けられた RestRequest メソッドを使用できます。

メモ

headers

要求が受け取るヘッダーを返します。

署名

public Map<String, String> headers {get; set;}

プロパティ値

型: Map<String, String>

httpMethod

サポートされる HTTP 要求メソッドの 1 つを返します。

署名

public String httpMethod {get; set;}

プロパティ値

型: String

返される値は次のとおりです。

  • DELETE
  • GET
  • HEAD
  • PATCH
  • POST
  • PUT

params

要求が受け取るパラメータを返します。

署名

public Map <String, String> params {get; set;}

プロパティ値

型: Map<String, String>

remoteAddress

要求を行うクライアントの IP アドレスを返します。

署名

public String remoteAddress {get; set;}

プロパティ値

型: String

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/* を返します。

RestRequest メソッド

RestRequest のメソッドは次のとおりです。すべてインスタンスメソッドです。

実行時に、ヘッダーまたはパラメータは、対応するプロパティに自動的に並列化されるため、通常 RestRequest オブジェクトに���加する必要はありません。次のメソッドは、Apex REST クラスをテストするユニットを対象とします。これらのメソッドを使用して、ヘッダーまたはパラメータ値を RestRequest オブジェクトに追加でき、REST メソッドコールを再作成する必要はありません。

メモ

addHeader(name, value)

要求ヘッダー対応付けにヘッダーを追加します。

署名

public Void addHeader(String name, String value)

パラメータ

name
型: String
value
型: String

戻り値

型: Void

使用方法

このメソッドは、Apex REST クラスのテストユニットを対象としています。

次のヘッダーは許可されていません。
  • Cookie
  • set-cookie
  • set-cookie2
  • content-length
  • 認証
いずれかが使用された場合は Apex 例外が返されます。

addParameter(name, value)

要求パラメータ対応付けにパラメータを追加します。

署名

public Void addParameter(String name, String value)

パラメータ

name
型: String
value
型: String

戻り値

型: Void

使用方法

このメソッドは、Apex REST クラスのテストユニットを対象としています。