Salesforceで外部へのコールアウトを実装する際には、HttpRequestとHttpクラスを使用します。
同期、非同期それぞれのコールアウトのApexコードの例を紹介します。
コード例
同期コールアウトの場合
HttpCalloutSync.cls の実装をご参照ください。
HttpRequestとHttpクラスで外部コールアウトを行なっています。
同期の場合は、特筆事項はないので実装例に従って書いてみてください。
非同期コールアウトの場合
HttpCalloutAsync.cls の実装をご参照ください。
この実装では、Queueable Apex を使用しています。
まずQueueableクラスを作成します。
そして、以下のようにQueueableジョブを実行します。
HttpCalloutAsync job = new HttpCalloutAsync();
System.enqueueJob(job);
非同期コールアウトではQueueable Apexを使用します。

Optimize Queueable Apex for Asynchronous Processing
Learn how to use Queueable Apex for asynchronous processing, including syntax, best practices, and b...
※リンク先の Trailhead に記載があるように、future でも実現は可能です。
Queueable Apexは非同期処理を行うための機能で、Queueableインターフェースを実装したクラス内でコールアウトを行います。
また、Queueable ApexはDatabase.AllowsCalloutsインターフェースも同時に実装することでコールアウトを可能にします。
なお、Queueable Apexにはガバナ制限があり、同一トランザクション中で同時に実行できるQueueableジョブは1つだけです。
また、1つのジョブ内でのコールアウトは最大100回までなので使用時にはご注意ください。
その他
コールアウトは Apex Test クラスの書き方も覚えておきましょう。

【Apex】Apex Test で外部コールアウトをテストする方法
知ってるんだけど忘れがちな、Apexでの外部コールアウトのテストクラスの実装の備忘録です。サンプルコード付きで概要を解説します。
また、コールアウトを伴う処理のよくあるエラーも事前に確認しておきましょう。

【Salesforce】「You have uncommitted work pending.」エラー
Salesforce の実装時の「You have uncommitted work pending.Please commit or rollback before calling out.」 とい...


コメント