RestRequest Class
Namespace
Usage
An Apex RESTful Web service method is defined using one of the REST annotations. For more information about Apex RESTful Web service, see Exposing Apex Classes as REST Web Services.
Example: An Apex Class with REST Annotated Methods
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 Properties
The following are properties for RestRequest.
httpMethod
Signature
public String httpMethod {get; set;}
remoteAddress
Signature
public String remoteAddress {get; set;}
Property Value
Type: String
requestBody
Signature
public Blob requestBody {get; set;}
Property Value
Type: Blob
Usage
If the Apex method has no parameters, then Apex REST copies the HTTP request body into the RestRequest.requestBody property. If there are parameters, then Apex REST attempts to deserialize the data into those parameters and the data won't be deserialized into the RestRequest.requestBody property.
requestURI
Signature
public String requestURI {get; set;}
Property Value
Type: String
Example
For example, if the request string is https://instance.salesforce.com/services/apexrest/Account/ then the requestURI is /Account/.
resourcePath
Signature
public String resourcePath {get; set;}
Property Value
Type: String
Example
For example, if the Apex REST class defines a urlMapping of /MyResource/*, the resourcePath property returns /services/apexrest/MyResource/*.
RestRequest Methods
The following are methods for RestRequest. All are instance methods.
addHeader(name, value)
Signature
public Void addHeader(String name, String value)
Return Value
Type: Void
Usage
This method is intended for unit testing of Apex REST classes.
- cookie
- set-cookie
- set-cookie2
- content-length
- authorization