どの API を使用するか?
インテグレーションニーズに合わせて適切な Salesforce API を選択します。Salesforce が提供する API の選択内容 (サポートされるプロトコル、データ形式、使用事例など) を確認します。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic (使用できない組織もあります) および Lightning Experience |
| 使用可能なエディション: Professional Edition (API アクセス有効)、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
| 必要なユーザー権限 | |
|---|---|
| API を使用する | 「API の有効化」 |
Apex クラスおよびメソッドを REST Web サービスとして使用する 「API の有効化」権限が付与されていない場合でも、Apex REST サービスへのアクセスを有効にします。 |
Apex REST サービス |
| API 参照名 | API 種別 | データの形式 | 通信 |
|---|---|---|---|
| REST API | REST | JSON、XML | 同期 |
| SOAP API | SOAP (WSDL) | XML | 同期 |
| Connect REST API | REST | JSON、XML | 同期 (写真の処理は非同期) |
| Apex REST API | REST | JSON、XML、カスタム | 同期 |
| Apex SOAP API | SOAP (WSDL) | XML | 同期 |
| Analytics REST API | REST | JSON、XML | 同期 |
| ユーザーインターフェース API | REST | JSON | 同期 |
| GraphQL API | GraphQL | JSON | 同期 |
| Tooling API | REST または SOAP (WSDL) | JSON、XML、カスタム | 同期 |
| Bulk API 2.0 | REST | CSV | 非同期 |
| メタデータ API | SOAP (WSDL) | XML | 非同期 |
| Pub/Sub API | gRPC およびプロトコルバッファ | Binary | 非同期 |
REST API を使用するケース
REST API では、Salesforce を操作するための、強力、便利、そしてシンプルな REST ベースの Web サービスインターフェースを提供します。インテグレーションや開発が容易になるという利点があり、モバイルアプリケーションや Web プロジェクトで使用するためのテクノロジーの選択としては最適です。特定のプロジェクトでは、REST API を他の Salesforce REST API と一緒に使用できます。リストビュー、アクション、および連動選択リストの UI の構築を含め、レコードの作成、参照、更新、削除用の UI を構築するには、ユーザーインターフェース API を使用します。Lightning の B2B Commerce、CMS 管理コンテンツ、Experience Cloud サイト、または Chatter で UI を構築するには、Connect REST API を使用します。処理するレコード件数が多い場合は、REST 規則に基づいて大規模データセットの処理用に最適化されている Bulk API を使用することを検討してください。
『REST API 開発者ガイド』を参照してください。
SOAP API を使用するケース
SOAP API では、Salesforce を操作するための強力かつ便利で、シンプルな SOAP ベースの Web サービスインターフェースを提供します。SOAP API を使用して、レコードを作成、取得、更新、または削除できます。また、SOAP API を使用して、検索の実行などを行うことができます。SOAP API は、Web サービスをサポートしている言語で使用できます。
たとえば、SOAP API を使用して、Salesforce を組織の ERP や会計システムと統合できます。また、リアルタイムの販売情報やサポート情報を会社のポータルに配信し、重要なビジネスシステムに顧客情報を入力することもできます。
『SOAP API 開発者ガイド』を参照してください。
Connect REST API を使用するケース
Connect REST API では、B2B Commerce for Lightning、CMS 管理コンテンツ、Experience Cloud サイト、ファイル、通知、トピックなどにプログラムでアクセスできます。特にモバイルアプリケーションで、Chatter フィード、ユーザー、グループを表示するには、Connect REST API を使用します。
『Connect REST API 開発者ガイド』を参照してください。
Apex REST API を使用するケース
Apex クラスと Apex メソッドを公開し、外部アプリケーションが REST アーキテクチャによってコードにアクセスできるようにする場合は、Apex REST API を使用します。Apex REST API は、認証のため OAuth 2.0 およびセッション ID の両方をサポートしています。
Apex SOAP API を使用するケース
Apex メソッドを SOAP Web サービス API として公開し、外部アプリケーションが SOAP によってコードにアクセスできるようにする場合は、Apex SOAP API を使用します。
Apex SOAP API は、認証のため OAuth 2.0 およびセッション ID の両方をサポートしています。
『Apex 開発者ガイド』の「Apex メソッドを SOAP Web サービスとして公開」および『SOAP API 開発者ガイド』の「Apex 関連のコール」を参照してください。
Analytics REST API を使用するケース
CRM Analytics アセット (データセット、レンズ、ダッシュボードなど) には、プログラムで Analytics REST API を使用してアクセスできます。クエリを送信し、Analytics プラットフォームにインポートされたデータセットにアクセスします。レンズを作成および取得します。XMD 情報にアクセスします。データセットバージョンのリストを取得する。CRM Analytics アプリケーションを作成および取得する。ダッシュボードを作成、更新、および取得します。アプリケーションの連動関係のリストを取得します。ユーザーが使用可能な機能を決定します。スナップショットを操作します。複製データセットを操作します。
『Analytics REST API 開発者ガイド』を参照してください。
ユーザーインターフェース API を使用するケース
Salesforce が Lightning Experience、Salesforce for Android、Salesforce for iOS、Salesforce モバイル Web を構築するときに使用するのと同じ API を使用して、ネイティブモバイルアプリケーションおよびカスタム Web アプリケーションの Salesforce UI を構築できます。レコード、リストビュー、アクション、お気に入りなどをユーザーが操作できるユーザーインターフェースを構築します。1 回の応答でデータとメタデータを取得できるだけでなく、その応答は、Salesforce システム管理者によって組織に加えられたメタデータの変更と一致します。レイアウト、選択リスト、項目レベルセキュリティ、共有について心配する必要はありません。必要なのは、ユーザーが気に入るアプリケーションを作成することだけです。
『ユーザーインターフェース API 開発者ガイド』を参照してください。
GraphQL API を使用するケース
クライアントが必要とするデータのみを 1 つの要求で返すことで、応答性と拡張性が高いアプリケーションを構築します。GraphQL API は、項目の選択、リソースの集計、およびスキーマイントロスペクションによって従来の REST API の課題を克服します。項目の選択では、ペイロードのサイズが小さくなり、クエリに含まれていた項目のみが返されます。集計により、クライアントとサーバー間の往復が減り、1 つの応答内で一連の関連リソースが返されます。スキーマイントロスペクションを使用すると、ユーザーはアクセスできる種別、項目、オブジェクトを表示できます。
『GraphQL API Developer Guide (GraphQL API 開発者ガイド)』を参照してください。
Tooling API を使用するケース
Salesforce メタデータを他のシステムと統合するには、Tooling API を使用します。メタデータ型は sObject として公開されるため、複合型の 1 つのコンポーネントにアクセスできます。この項目レベルのアクセスにより、複合型のメタデータに対する操作時間を短縮できます。Force.com アプリケーション用のカスタム開発ツールを作成することもできます。たとえば、Tooling API を使用して、Apex クラスとトリガーや Visualforce ページとコンポーネントの作業コピーを管理およびリリースすることができます。また、チェックポイントまたはヒープダンプマーカーの設定、匿名 Apex の実行、ログ記録情報およびコードカバー率情報へのアクセスも可能です。
REST と SOAP は両方ともサポートされています。
「Tooling API」を参照してください。
Bulk API 2.0 を使用するケース
Bulk API 2.0 を使用して、大量のレコードのクエリ、queryAll 操作、挿入、更新、更新/挿入、削除を非同期で実行できます。Bulk API 2.0 は Salesforce REST フレームワーク上に設計されています。
Bulk API 2.0 の候補として、2,000 件を超えるレコードを含むデータ操作をお勧めします。これにより、Bulk フレームワークを使用する非同期ワークフローの準備、実行、管理を正常に行うことができます。2,000 レコード未満のジョブでは、REST (Composite など) または SOAP による「一括」の同期呼び出しを行うことをお勧めします。
大量のデータを操作する場合、最も簡単な方法は、レコードの作成、参照、更新、削除 (CRUD) を大規模に行うことです。ジョブに 1 つの sObject 型のみが含まれているか、1 日あたり最大 1 TB のデータを抽出する場合は、Bulk API 2.0 が最適な Salesforce API になります。
『Bulk API 2.0 および Bulk API 開発者ガイド』を参照してください。
メタデータ API を使用するケース
メタデータ API を使用して、組織のカスタマイズを取得、リリース、作成、更新、または削除します。最も一般的な使い方は、Sandbox またはテスト組織から本番環境への変更の移行です。メタデータ API はカスタマイズを管理し、データ自体ではなくメタデータモデルを管理できるツールを構築するためのものです。
Visual Studio Code 向け Salesforce 拡張機能または Salesforce CLI を使用すると、最も簡単にメタデータ API の機能にアクセスできます。どちらのツールもメタデータ API の上位に構築され、メタデータ API を使用した作業を簡略化するために標準のツールが使用されます。
- Visual Studio Code 向け Salesforce 拡張機能には、軽量で拡張可能な VS Code エディターを使用して Salesforce Platform 上で開発を行うためのツールが含まれています。これらのツールでは、開発組織 (スクラッチ組織、Sandbox、DE 組織)、Apex、Aura コンポーネント、Visualforce を操作する機能が提供されています。
- Salesforce CLI は、スクリプトまたはコマンドラインを使用してローカルディレクトリと Salesforce 組織間でメタデータを移動する場合に最適です。
『メタデータ API 開発者ガイド』を参照してください。
Pub/Sub API を使用するケース
Pub Sub API を使用して、外部システムをイベントと統合できます。イベントストリームは、プラットフォームイベントを介したカスタムペイロードまたは変更データキャプチャを介した Salesforce レコードへの変更に基づきます。Salesforce では、Apex トリガー、プロセスビルダー、Flow Builder を使用してイベントの公開と登録を行うことができます。
Pub/Sub API は、Salesforce との拡張性の高い双方向のイベント統合を目的として作成されています。Pub/Sub API を使用して、バイナリイベントメッセージを Apache Avro 形式で効率的に公開および登録します。Pub/Sub API は gRPC および HTTP/2 に基づいており、取り込みベースのモデルを使用しているため、ユーザーは登録フローを制御できます。Pub/Sub API では、gRPC でサポートされる 11 個のプログラミング言語のいずれかを使用できます。
ニーズに合ったストリーミングイベント種別を使用してください。
- 変更データキャプチャイベント: 変更されたすべてのフィールドで Salesforce レコードへの変更を受信します。変更データ取得には、PushTopic イベントよりもサポートされる標準オブジェクトが多く、変更に関する情報が含まれるヘッダー項目など、追加の機能が提供されます。
- プラットフォームイベント: 定義済みスキーマを使用してカスタムペイロードを公開および受信します。注文情報などのビジネスデータを含め、定義すればどのようなデータでも使用できます。プラットフォームイベントを定義して、送信するデータを指定します。通知を受信するには、プラットフォームイベントチャネルに登録します。
- 従来のイベント: PushTopic および Generic Event<: PushTopic および Generic Event は第一世代イベントです。これらのイベントはサポートが制限され、新機能で更新されなくなりました。PushTopic イベントの代わりに変更データキャプチャイベントを使用し、汎用イベントの代わりにプラットフォームイベントを使用することをお勧めします。
Pub/Sub API ドキュメントを参照してください。

