As readers of this blog will already have determined, I love API’s! So when I was approached by the team at 100 Days of Trailhead to share my Top 5 “things” my mind fell to API’s. This is a short blog post because effectively the brief was a 10 minute video! Well ok I ran a bit over in the end so its actually 15 minutes.
In the video I cover 5 Apex API’s and a Bonus API at the end. Thank you for 100 Days of Trailhead for asking to contribute and please do check out all the other amazing content they have on their website! You can watch the video below (or link here) and find full source code in this GitHub repository.

/**
.----------------.
| .--------------. |
| | _______ | |
| | | _____| | |
| | | |____ | |
| | '_.____''. | |
| | | \____) | | |
| | \______.' | |
| | | |
| '--------------' |
'----------------'
*/
//
// Firing Platform Events from Batch Apex
//
public with sharing class Five
implements Database.Batchable<SObject>, Database.RaisesPlatformEvents {
.----------------.
| .--------------. |
| | _ _ | |
| | | | | | | |
| | | |__| |_ | |
| | |____ _| | |
| | _| |_ | |
| | |_____| | |
| | | |
| '--------------' |
'----------------'
//
// Request Class - Request Id
//
Request reqInfo = Request.getCurrent();
String currentRequestId = reqInfo.getRequestId();
.----------------.
| .--------------. |
| | ______ | |
| | / ____ `. | |
| | `' __) | | |
| | _ |__ '. | |
| | | \____) | | |
| | \______.' | |
| | | |
| '--------------' |
'----------------'
//
// Request Class - Quiddity
//
switch on Context {
when SYNCHRONOUS {
RequestOrderProcessor = new TriggerOrderProcessing();
} when BULK_API {
RequestOrderProcessor = new BulkAPIOrderProcessing();
} when else {
RequestOrderProcessor = new BaseOrderProcessing();
}
}
.----------------.
| .--------------. |
| | _____ | |
| | / ___ `. | |
| | |_/___) | | |
| | .'____.' | |
| | / /____ | |
| | |_______| | |
| | | |
| '--------------' |
'----------------'
//
// Send Notifications
//
Messaging.CustomNotification notification = new Messaging.CustomNotification();
notification.setTitle('Amazing new order ' + newOrder.OrderNumber);
notification.setBody('Check out this new order that has just come in!');
notification.setNotificationTypeId(notificationType.Id);
notification.setTargetId(newOrder.Id);
notification.send(new Set<String> { UserInfo.getUserId()} );
.----------------.
| .--------------. |
| | __ | |
| | / | | |
| | `| | | |
| | | | | |
| | _| |_ | |
| | |_____| | |
| | | |
| '--------------' |
'----------------'
Opportunity opp = new Opportunity();
opp.addError('Description', 'Error Message!');
List<Database.Error> errors = opp.getErrors();
System.assertEquals(1, errors.size());
System.assertEquals('Error Message!', errors[0].getMessage());
System.assertEquals('Description', errors[0].getFields()[0]);
/**
*
____
| _ \
| |_) | ___ _ __ _ _ ___
| _ < / _ \| '_ \| | | / __|
| |_) | (_) | | | |
\__ \
|____/ \___/|_| |_|\__,_|___/
*/
public class BonusFinalizer implements Finalizer {
public void execute(FinalizerContext ctx) {
September 8, 2021 at 3:01 am
Reblogged this on Tounca Blog.