- Published on
Mastering Salesforce Integration: A Comprehensive Guide to APIs with Apex and Aura Component Examples
- Authors
- Name
- Himanshu Varshney
Senior Salesforce Developer
REST API
Purpose: Used for accessing resources in any format (XML, JSON, etc.) over HTTP with a wide range of functionalities.
Example in Apex:
HttpRequest req = new HttpRequest();
req.setEndpoint('https://yourinstance.salesforce.com/services/data/vXX.0/sobjects/Account/');
req.setMethod('GET');
Http http = new Http();
HTTPResponse res = http.send(req);
Example in Aura Components:
action.setParams({
"request": req
});
SOAP API
Purpose: Primarily used for integrating with enterprise systems, supporting XML-based messaging.
Example in Apex: Apex does not natively consume SOAP; it's typically used on the external system to call into Salesforce.
Bulk API
Purpose: Optimized for loading large sets of data asynchronously. It's efficient for querying large datasets.
Example in Apex:
AsyncApexJob a = [SELECT Id, Status, NumberOfErrors, JobItemsProcessed,
TotalJobItems, CreatedBy.Email
FROM AsyncApexJob WHERE Id = :jobID];
Metadata API
Purpose: Used for managing customization and building tools that can manage the metadata model, not the data itself.
Example in Apex: Typically used via tools like ANT migration tool, not directly accessible in Apex.
Streaming API
Purpose: Useful for receiving notifications for changes to Salesforce data (in near real-time).
Example in Aura Components: Aura Components can subscribe to a channel to receive notifications.
$A.get("e.empApi:subscribe").setParams({
channel: '/event/My_Event__e',
replayId: -1
}).fire();
Tooling API
Purpose: Allows you to build custom development tools or apps for Salesforce platforms. It provides endpoints for describing, querying, and modifying your metadata.
Example in Apex:
HttpRequest req = new HttpRequest();
req.setEndpoint(URL.getSalesforceBaseUrl().toExternalForm()+'/services/data/vXX.0/tooling/query?q=Select+Id,Name+From+ApexClass');
req.setMethod('GET');
Chatter REST API
Purpose: Used for accessing Salesforce Chatter feeds and social data such as users, groups, followers, and files.
Example in Apex:
ConnectApi.FeedItem fi = ConnectApi.ChatterFeeds.postFeedItem(null, ConnectApi.FeedType.News, 'me', 'Hello World', null);
UI API
Purpose: Lets you build UI for viewing Salesforce data, loading records, and saving changes back to the server.
Example in Aura Components:
var action = component.get("c.getRecord");
action.setParams({ recordId : component.get("v.recordId") });
Analytics API
Purpose: Used for running reports and accessing analytics data.
Example in Apex: Not typically used directly in Apex; more for external systems.
Composite API
- **Purpose**: Allows you to combine multiple requests into a single call.
- **Example in Apex**:
```apex
HttpRequest req = new HttpRequest();
req.setEndpoint('https://yourinstance.salesforce.com/services/data/vXX.0/composite/');
req.setMethod('POST');
Each API serves a specific purpose and offers different capabilities. Apex and Aura Components can leverage these APIs to create powerful, integrated Salesforce applications. The examples provided demonstrate basic usage and would need to be adapted to your specific requirements.