Salesforceで外部へのコールアウトを実装する際には、HttpRequest
とHttp
クラスを使用します。
同期、非同期それぞれのコールアウトのApexコードの例を紹介します。
コード例
同期コールアウトの場合
HttpCalloutSync.cls
の実装をご参照ください。
HttpRequest
とHttp
クラスで外部コールアウトを行なっています。
同期の場合は、特筆事項はないので実装例に従って書いてみてください。
非同期コールアウトの場合
HttpCalloutAsync.cls
の実装をご参照ください。
この実装では、Queueable Apex
を使用しています。
まずQueueableクラスを作成します。
そして、以下のようにQueueableジョブを実行します。
HttpCalloutAsync job = new HttpCalloutAsync();
System.enqueueJob(job);
非同期コールアウトではQueueable Apexを使用します。
非同期 Apex
非同期処理でより効率的に Apex コードを記述します。
※リンク先の 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.」 とい...
コメント