こんにちは、アンダーソンです。
今回はTrailheadのApexインテグレーションについて、頭の中でまとまっていなかったのを
できるだけシンプルにまとめてみました。
上級デベロッパーでもインテグレーションの割合は14%と高い上に、
結構シビアな問題の出し方をしていたので再度おさらいの意味を込めて
まとめていきたいと思います。
4つのパターンを覚える
まず4つのパタンがあることを頭にいれておきましょう。
- REST コールアウト
- SOAP コールアウト
- REST Web サービス
- SOAP Web サービス
それぞれどう違うのかとどう言ったケースでどのインテグレーションを使うべきなのか
というのが問われますので、次でそれをまとめていきます。
使用するケース
REST コールアウト
ApexからHTTP要求を通じてGETやPUTなどのコールアウト要求を行うことができます。
HTTPクラス、HttpRequestクラス、HttpResponseクラスを使ってコールアウトします。
Apexを通じてSalesforceを外部システムと連携したい際に使います。
SOAP コールアウト
提供されているWSDLを使ってApexクラスを作成することができ、それを使って
HTTP要求を行うことができる。
こちらも外部システムと連携する分には同じだが、
RESTのようにURLの呼び出しでXMLやJSONを返す形ではない。
REST Web サービス
リファレンスを参考にすると、
外部アプリケーションが REST アーキテクチャによってコードとアプリケーションにアクセスできるように、Apex クラスとメソッドを公開することができます。
Apex クラスを REST Web サービスとして公開
アノテーションをつけた6種類のメソッドを外部サービスに提供することで、
ApexクラスをRESTサービスとして公開することができます。
アノテーション | アクション | 詳細 | スコープ |
---|---|---|---|
@RestResource (urlMapping=’/yourUrl’) | 公開 | Apex クラスを REST リソースとして公開できるようにします。 | クラス |
@HttpGet | 参照 | レコードを参照または取得します。 | メソッド |
@HttpPost | 作成 | レコードを作成します。 | メソッド |
@HttpDelete | 削除 | レコードを削除します。 | メソッド |
@HttpPut | 更新/挿入 | 通常、既存のレコードを更新したり、レコードを作成したりするために使用します。 | メソッド |
@HttpPatch | 更新 | 通常、既存のレコードの項目を更新するために使用します。 | メソッド |
上記の要求に対して、JSONもしくはXML形式で記述されます。
SOAP Web サービス
外部アプリケーションからSalesforceに対してアクセスできるように公開できます。
Apexメソッドの公開はWebserviceメソッドを使うことで使用可能になります。
Webserviceメソッドはstaticであり、globalである必要があり、戻り値にはMapやSetなどは使えません。その他にも制約がありますので詳しくはこちらをご覧ください。
まとめ
ほんとにざっくりですが試験対策としては要点を覚えておいてこの要件であればこれって感じで出てましたのでそれでいいのかと思います。
にしてもこの辺の話苦手です。。。
コメント