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

RestRequest クラス

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

名前空間

System

使用方法

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

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

次の例では、Apex の Apex REST API の実装方法を示します。このクラスが公開する GET、DELETE、および POST の 3 つのメソッドはそれぞれ、異なる HTTP 要求を処理します。HTTP 要求を発行して、クライアントからアノテーションが付加されたこれらのメソッドをコールできます。
1@RestResource(urlMapping='/Account/*')
2global with sharing class MyRestResource {
3
4    @HttpDelete
5    global static void doDelete() {
6        RestRequest req = RestContext.request;
7        RestResponse res = RestContext.response;
8        String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
9        Account account = [SELECT Id FROM Account WHERE Id = :accountId];
10        delete account;
11    }
12  
13    @HttpGet
14    global static Account doGet() {
15        RestRequest req = RestContext.request;
16        RestResponse res = RestContext.response;
17        String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
18        Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE Id = :accountId];
19        return result;
20    }
21  
22  @HttpPost
23    global static String doPost(String name,
24        String phone, String website) {
25        Account account = new Account();
26        account.Name = name;
27        account.phone = phone;
28        account.website = website;
29        insert account;
30        return account.Id;
31    }
32}

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
  • authorization
いずれかが使用された場合は Apex 例外が返されます。

addParameter(name, value)

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

署名

public Void addParameter(String name, String value)

パラメータ

name
型: String
value
型: String

戻り値

型: Void

使用方法

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