Apex インテグレーションの概要

学習の目的

このモジュールを完了すると、次のことができるようになります。
  • Web サービスと HTTP コールアウトの違いを説明する。
  • [リモートサイトの設定] で外部サイトを承認する。

Apex からの外部サービスへのコールアウトの実行

Apex コールアウトを使用すると、Apex コードと外部サービスを緊密に統合できます。コールアウトでは、Apex コードから外部 Web サービスへのコールを実行したり、HTTP 要求を送信したりして、その応答を受信します。

Apex コールアウトは 2 種類あります。

  • SOAP Web サービスへの Web サービスコールアウトでは XML を使用し、通常はコード生成に WSDL ドキュメントが必要になります。
  • サービスへの HTTP コールアウトでは REST と JSON を使用します。

これらの 2 種類のコールアウトは、要求をサービスに送信して応答を受信するという点では似ています。ただし、WSDL ベースのコールアウトは SOAP Web サービスに適用され、HTTP コールアウトは HTTP サービス (SOAP または REST) で使用できます。

そのため、「どちらを使用すべきか?」と疑問に思っている方は、できる限り HTTP サービスを使用してください。一般的に、これらのサービスの方が操作が簡単で、必要なコードが大幅に少なく、読みやすい JSON を利用できます。ここ数年間で「クールな若者」はみな REST サービスに切り替えていますが、SOAP Web サービスが悪いというわけではありません。SOAP Web サービスには (インターネットイヤーでは) 非常に長い歴史があり、主にエンタープライズアプリケーションで使用されています。これらがすぐになくなるということはありません。SOAP は、主に従来のアプリケーションと統合する場合や、正規の交換形式またはステートフル操作を必要とするトランザクションで使用することになるでしょう。このモジュールでは SOAP についても軽く触れますが、大半を REST についての説明に費やします。

エンドポイントアドレスの承認

私たちは Salesforce でセキュリティを確保することに強い誇りをもっています。ですから、お客様が外部サイトへのコールアウトを実行するときは、そのコールアウトが常に承認済みであるようにしたいと思っています。事前の承認を行わず、行き当たりばったりにコードで任意のエンドポイントにコールアウトさせることはできません。コールアウトの作業を開始する前に、[リモートサイトの設定] ページで組織の承認済みサイトのリストを更新します。

このモジュールでは、次のエンドポイントを使用するため、これらのエンドポイントを今すぐ追加してください。エンドポイントを追加するのを忘れても、コードの実行時に通知されるので心配はいりません。次のサイトへのコールを実行します。

  • https://th-apex-http-callout.herokuapp.com
  • https://th-apex-soap-service.herokuapp.com

次の手順に従って、これらのエンドポイント URL を両方とも承認します。

  1. [設定] から、[クイック検索] ボックスに「リモートサイトの設定」と入力し、[リモートサイトの設定] をクリックします。
  2. [新規リモートサイト] をクリックします。
  3. リモートサイト名として「animals_http」と入力します。
  4. リモートサイトの URL として「https://th-apex-http-callout.herokuapp.com」と入力します。この URL では、エンドポイントのすべてのサブフォルダ (https://th-apex-http-callout.herokuapp.com/path1https://th-apex-http-callout.herokuapp.com/path2 など) が承認されます。
  5. 説明として「Trailhead animal service: HTTP」と入力します。
  6. [保存 & 新規] をクリックします。
  7. 2 番目のリモートサイト名として「animals_soap」と入力します。
  8. リモートサイトの URL として「https://th-apex-soap-service.herokuapp.com」と入力します。
  9. 説明として「Trailhead animal service: SOAP」と入力します。
  10. [保存] をクリックします。