-
Notifications
You must be signed in to change notification settings - Fork 519
RestClient
This class provides an exmaple of an intelligent abstraction for making REST callouts to external endpoints. It utilizes NamedCredentials for security. This class is designated as Virtual so that API Service classes can extend it, and make use of it's methods easily. See the CovidTrackerAPI class for an example of how an API service class can extend RestClient. This class also provides static methods - so that the abstractions provided can be used in a one-off or ad-hoc manner for situations where a full API Service class isn't needed. More on Named Credentials: https://sfdc.co/named-credentials
AtFutureRecipes, QueueableWithCalloutRecipes, ApiServiceRecipes, CalloutRecipes
Constructor that sets Named Credential
| Param | Description |
|---|---|
namedCredential |
name of the Named Credential to use |
This constructor isn't intended for use, which is why it's access modifier is 'Protected'. However, any child class extending this class will either have to implement constructors matching the one above, or this constructor must exist. In order to make this abstraction as useful as possible, we've elected to leave this constructor here, but unavailable to anything but inner classes and classes that extend this one.
This ENUM lists possible HTTP Verbs. Note: 'Delete' is an Apex Keyword (DML) and as a result, the ENUM value 'DEL' is used for delete.
The default headers to use, when none are specified
The name of the Named Credential to use
convenience method for deleteing a resource based only on path
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
Type
HttpResponse
Description
HTTPResponse
convenience method for a Delete Call that only requires a path and query
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
Type
HttpResponse
Description
HTTPResponse
Ensures that the inputted string ends in a / makes callouts more robust.
| Param | Description |
|---|---|
resource |
string to ensure ends in /
|
Type
String
Description
inputted string with / if it didn't already end in one.
convenience method for a GET Call that only requires a path
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
Type
HttpResponse
Description
HTTPResponse
convenience method for a GET Call that only requires a path and query
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
Type
HttpResponse
Description
HTTPResponse
makeApiCall(HttpVerb method,String path,String query,String body,Map<String, String> headers) → HttpResponse
Omnibus callout method. This is the primary method for making a REST callout. Most of the other methods in this class serve as convient, syntactic sugar on this method.
| Param | Description |
|---|---|
method |
Enum HTTP verb to use. i.e. GET |
path |
patch component of the callout url i.e. /services/data/v39.0/SObjects
|
query |
Query portion of the URL i.e. ?q=SELECT Id FROM Account
|
body |
JSON string representing the body of the callout in post/patch situations |
headers |
A map<String,String> of headers to use while making this callout |
Type
HttpResponse
Description
HttpResponse HttpResponse Obj
Makes an HTTP Callout to an api resource. Convienence method that assumes the Default Headers.
| Param | Description |
|---|---|
method |
HTTPVerb to use. See the enum above. |
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
body |
Body to send with this call. |
Type
HttpResponse
Description
HttpResponse
convenience version of makeApiCall without body param. Invokes omnibus version above, with blank body param and default headers.
| Param | Description |
|---|---|
method |
HTTPVerb to use. See the enum above. |
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
Type
HttpResponse
Description
HTTPResponse
convenience version of makeApiCall without body or query params. Invokes omnibus version above, with blank body and query params
| Param | Description |
|---|---|
method |
HTTPVerb to use. See the enum above. |
path |
Http path component of the URL. ie: /path/to/resource
|
Type
HttpResponse
Description
HTTPResponse
makeApiCall(String namedCredential,HttpVerb method,String path,String query,String body,Map<String, String> headers) → HttpResponse
A static wrapper for the main makeApiCall method
| Param | Description |
|---|---|
namedCredential |
The named credential to use |
method |
HTTPVerb enum value. See Enum above |
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
body |
JSON string to post |
headers |
Map<String,String> representing outgoing Request |
Type
HttpResponse
Description
HTTPResponse
System.Debug(RestClient.makeApiCall('MockBin',
RestClient.HttpVerb.GET,
'4cb453a6-a23b-42ea-a6ba-9be1c1f17050',
'',
'',
new Map<String,String>()));A static wrapper for the main makeApiCall method that assumes default headers.
| Param | Description |
|---|---|
namedCredential |
The named credential to use |
method |
HTTPVerb enum value. See Enum above |
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
Type
HttpResponse
Description
HTTPResponse
System.Debug(RestClient.makeApiCall('MockBin',
RestClient.HttpVerb.GET,
'4cb453a6-a23b-42ea-a6ba-9be1c1f17050',
''));A static wrapper for the main makeApiCall method where you only need the path
| Param | Description |
|---|---|
namedCredential |
The named credential to use |
method |
HTTPVerb enum value. See Enum above |
path |
Http path component of the URL. ie: /path/to/resource
|
Type
HttpResponse
Description
HTTPResponse
System.Debug(RestClient.makeApiCall('MockBin',
RestClient.HttpVerb.GET,
'4cb453a6-a23b-42ea-a6ba-9be1c1f17050'));convenience method for a PATCH Call that only requires a path, query and body
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
body |
JSON string to post |
Type
HttpResponse
Description
HTTPResponse
convenience method for a PATCH Call that only requires a path, query and body
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
body |
JSON string to post |
Type
HttpResponse
Description
HTTPResponse
convenience method for a POST Call that only requires a path and body
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
body |
JSON string to post |
Type
HttpResponse
Description
HTTPResponse
convenience method for a POST Call that only requires a path, query and body
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
body |
JSON string to post |
Type
HttpResponse
Description
HTTPResponse
convenience method for a PUT Call that only requires a path and body
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
body |
JSON string to post |
Type
HttpResponse
Description
HTTPResponse
convenience method for a PUT Call that only requires a path, query and body
| Param | Description |
|---|---|
path |
Http path component of the URL. ie: /path/to/resource
|
query |
Query component of the URL ie: after ?foo=bar
|
body |
JSON string to post |
Type
HttpResponse
Description
HTTPResponse