Salesforceに特化した情報をお届けします

Salesforce APIとは?その概要や種類について徹底解説!
Salesforce APIの重要性とは?
Salesforceをシステムに導入する上でデータ連携は様々なシーンで必要不可欠となります。 例えば、初期データの移行や基幹システムとのデータ同期、他システムやクラウドとのSOAなどその用途は様々です。
そのため、それぞれのニーズに対応するために、世界中にはSalesforceと連携できるデータツールがたくさんあります。 では、実際目的に合ったツールや使用方法はどのように選定すればよいでしょうか?
Salesforceは外部からアクセスするためのAPIが多く公開されていますが、上記のような疑問を解決するためには、使用すべきAPIについて詳しく知ることも大切です。
今回はそんなSalesforceのAPIについて追求していきます。
APIとは何か?
APIとは「Application Programming Interface」の略語です。
簡単にいうとアプリケーションをプログラミングする用のインターフェースという意味になります。
インターフェースとはIT用語で「接続」という意味で使われ、異なる機器や装置を仲介する役割を担うことで交信や制御を可能にする装置やソフトウェアとして使用されます。
例えば、皆さんが普段使用しているmicroUSBは「スマートフォン」と「充電ケーブル」を繋ぐインターフェースですし、USBも「パソコン」と「周辺機器」を繋ぐインターフェースと言えます。
つまり、APIとは「アプリケーション」と「プログラム」を繋ぐインターフェースをという解釈で相違ないでしょう。
APIの役割について
APIはアプリケーションやソフトウェアなどを外部に向けて発信・公開することで、第三者が開発した機能やソフトウェアを共有できるようにアシストするシステムです。
つまりAPIを導入すれば認証機能やチャット機能の共有、片方から数値データを取り込み、もう片方のプログラムでそのデータを分析・解析といったことができるというわけです。
APIを公開する目的はソフトウェアの機能性や処理能力を拡張・向上させ、今まで以上に利用しやすくするという目的があります。
Salesforce APIの種類
ここではSalesforceと接続できる主要なAPIについて6つご紹介します。
APIはその種類によってそれぞれ性質や働きが異なりますので、自分の用途に合わせて利用を検討してみてください。
SOAP API
SOAP APIは、同名の業界標準プロトコルに基づいた堅牢で強力なWebサービスです。今回紹介する6つのAPIの中で一番スタンダードなAPIに該当します。
SOAP APIはメッセージの記述にXML(文章の見た目や構造を記述するためのマークアップ言語)を使用し、データ伝送には主にHTTPを用いることで、Webサービスの提供や利用に適しています。
機能としてはレコードの操作や定義された大容量のメタデータ取得、ユーザパスワードの変更といったユーティリティ機能も備えています。
Bulk API
Bulk APIは組織への初回データ読み込みなど大量レコードを処理に適したAPIです。ここでいう大量とは、50,000レコード以上を意味しています。
Bulk APIを使用して複数のバッチ処理(一定量のあるいは一定期間のデータを一括処理するための処理方法)でも多数のレコードを非同期でクエリ、queryAll、更新・導入または削除することが可能です。もちろん非同期なので、バッチはバックグラウンドで処理されます。
Bulk APIの一番メジャーな使用方法は、CSVファイルを使ってデータローダーでレコードの処理を可能にすることです。データローダーを使用すると、独自のアプリケーションを作成する必要がなくなるメリットがあるのでとても便利です。
REST API
REST APIは軽量なデータを操作することに適したAPIです。
REST API は、あらゆる種類のSalesforce機能をRESTリソースとHTTPメソッドを介して公開します。「何のリソースを」「どのように」操作するかをURIやHTTPメソッドで表現できるのです。
例えばレコードの作成や読み取り、更新、削除、データの検索またはクエリ、オブジェクトメタデータの取得、組織の制限に関する情報のアクセスなどが可能です。
また、実装がとても簡単かつ通信量が軽量な点がメリットで、ブラウザアプリやモバイルとの連携にうってつけです。
また、独立性が高くシンプルな設計が強みなので、HTTPさえ理解できていれば、汎用性が高いプログラムを作成することができます。そのため、初心者が扱いやすいAPIとしておすすめです。
Streaming API
Streaming APIは、データの変更後にトリガされる通知の設定に特化したAPIです。
Streaming APIでは、プッシュ技術を使用してイベントのストリーミングを行い、ほぼリアルタイムでイベントを受信する登録メカニズムを提供することができます。
例えば、Salesforceインフラストラクチャに対して絶えずポーリングし、不必要な API コールと処理時間を消費するアプリケーションでStreaming APIを使用すると、データを返さない要求の数を減らし、効率を高めることができます。
また、組織でのデータ変更に関する全般的な通知を必要とするアプリケーションにStreaming APIを使用して、API コールの数を削減しパフォーマンスをあげることも可能です。
しかし、プロトコルの仕組みや通知の保証が難しいため、コアデータの連携には適していない点に注意が必要です。
Chatter REST API
Chatter REST APIは特にモバイルアプリケーションで使用されるAPIです。
Chatter REST API は、FacebookやTwitterなどに用いられることが多く、Chatterフィードとユーザー、グループ、フォロワー、ファイルなどのソーシャルデータへのプログラムを使用したアクセスを提供することができます。
Chatter REST APIではファイルやおすすめ、トピック、通知、Data.comの購入などにプログラムを介してアクセスすることも可能です。
Chatter REST API を使用して、モバイルアプリケーション、イントラネットサイト、およびサードパーティWeb アプリケーションなど、さまざまなアプリケーションにChatterを統合することも可能です。
Tooling API
Tooling APIはSalesforceメタデータを他のシステムと統合するために使用されるAPIです。Tooling APIは、開発者ツール作成で使用され、RESTやSOAPからアクセスできるオブジェクトを公開することが可能です。
例えば、Tooling APIを使用することで既存のForce.comツールに機能を追加したり、Force.com開発用の動的モジュールをエンタープライズインテグレーションツールに組み込んだり、特定のアプリケーションまたはサービス専用の開発ツールを作成することができます。
また、ApexクラスとトリガやVisualforceページとコンポーネントの作業コピーを管理およびリリースすることも可能。チェックポイントまたはヒープダンプマーカーの設定、匿名Apexの実行、ログ記録情報およびコードカバー率情報へのアクセスも行うことができます。
Salesforce APIを実際に使用してみよう!
今回はSalesforceでよく使用されているAPIについて、サポートされるプロトコル、データ形式、通信パラダイム、使用事例などについて解説してきました。
連携ツールがどのようなAPIを使用しているのかについて把握することで、システム内でどのような働きがされているのか明確になり、よりSalesforceを活用しやすくなります。
インテグレーションに最適なAPIを選択することは非常に重要です。今後使用するAPIを検討する際にはぜひ本記事を役立ててください。