API

Salesforce では、使いやすく、強力で、安全なアプリケーションプログラムインターフェースを使用した、組織の情報へのプログラムによるアクセスを提供しています。

![截屏2022-06-22 21.07.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2662696/f624d4bd-5da2-e352-d075-ef5e4198a7cc.png)

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 を使用することを検討してください。

SOAP API を使用するケース:
SOAP API では、Salesforce を操作するための強力かつ便利で、シンプルな SOAP ベースの Web サービスインターフェースを提供します。SOAP API を使用して、レコードを作成、取得、更新、または削除できます。また、SOAP API を使用して、検索の実行などを行うことができます。SOAP API は、Web サービスをサポートしている言語で使用できます。
たとえば、SOAP API を使用して、Salesforce を組織の ERP や会計システムと統合できます。また、リアルタイムの販売情報やサポート情報を会社のポータルに配信し、重要なビジネスシステムに顧客情報を入力することもできます。

Connect REST API を使用するケース:
Connect REST API では、B2B Commerce for Lightning、CMS 管理コンテンツ、Experience Cloud サイト、ファイル、通知、トピックなどにプログラムでアクセスできます。特にモバイルアプリケーションで、Chatter フィード、ユーザ、グループを表示するには、Connect REST API を使用します。

ユーザインターフェース API を使用するケース:
Salesforce が Lightning Experience、Salesforce for Android、Salesforce for iOS、Salesforce モバイル Web を構築するときに使用するのと同じ API を使用して、ネイティブモバイルアプリケーションおよびカスタム Web アプリケーションの Salesforce UI を構築できます。レコード、リストビュー、アクション、お気に入りなどをユーザが操作できるユーザインターフェースを構築します。1 回の応答でデータとメタデータを取得できるだけでなく、その応答は、Salesforce システム管理者によって組織に加えられたメタデータの変更と一致します。レイアウト、選択リスト、項目レベルセキュリティ、共有について心配する必要はありません。必要なのは、ユーザが気に入るアプリケーションを作成することだけです。

Analytics REST API を使用するケース:
Analytics アセット (データセット、レンズ、ダッシュボードなど) には、プログラムで Analytics REST API を使用してアクセスできます。Analytics Platform に直接クエリを送信します。Analytics Platform にインポートされたデータセットにアクセスします。レンズを作成および取得します。XMD 情報にアクセスします。データセットバージョンのリストを取得する。Analytics アプリケーションを作成および取得します。Analytics ダッシュボードを作成、更新、および取得します。アプリケーションの連動関係のリストを取得します。ユーザが使用可能な機能を決定します。スナップショットを操作します。複製データセットを操作します。

Bulk API 2.0 を使用するケース:
Bulk API 2.0 を使用して、大量のレコードのクエリ、queryAll 操作、挿入、更新、更新/挿入、削除を非同期で実行できます。Bulk API 2.0 は Salesforce REST フレームワーク上に設計されています。
その他の Salesforce Platform API (SOAP API や REST API など) は、一度にいくつかのレコードを更新する同期クライアントアプリケーション用に最適化されています。SOAP API を使用しても多数のレコードを処理することはできますが、数十万のレコードがデータセットに含まれている場合、同期操作は実用性に欠けます。Bulk API 2.0 は、千から百万単位のレコードのデータを簡単に読み込めるように設計されています。
大量のデータを操作する場合、最も簡単な方法は、レコードの作成、参照、更新、削除 (CRUD) を大規模に行うことです。ジョブに 1 つの sObject 型のみが含まれているか、1 日あたり最大 1 TB のデータを抽出する場合は、Bulk API 2.0 が最適な Salesforce 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 を使用するケース:
ストリーミング API を使用して、Salesforce レコードまたはカスタムペイロードに基づいて、ほぼリアルタイムのデータストリームを受信します。Salesforce レコードの変更の場合は、変更されたときに通知が公開されます。カスタム通知の場合は、イベントメッセージを公開できます。登録者は、プッシュ技術をシミュレートする Bayeux プトロコルの実装である CometD を使用して通知を受信できます。クライアントは、Apex トリガを使用するか、プロセスビルダーと Flow Builder を宣言的に使用して、一部のイベント種別に登録することもできます。

ニーズに合ったストリーミングイベント種別を使用してください。

・PushTopic イベント
定義する SOQL クエリに基づいて Salesforce レコードへの変更を受信します。通知には、SOQL クエリで指定する項目のみが含まれます。

・変更データ取得イベント
変更された項目すべてと共に Salesforce レコードへの変更を受信します。変更データ取得には、PushTopic イベントよりもサポートされる標準オブジェクトが多く、変更に関する情報が含まれるヘッダー項目など、追加の機能が提供されます。

・プラットフォームイベント
事前定義されたスキーマを使用してカスタムイベントデータを公開および受信します。注文情報などのビジネスデータを含め、定義すればどのようなデータでも使用できます。プラットフォームイベントを定義して、送信するデータを指定します。通知を受信するには、プラットフォームイベントチャネルに登録します。

・汎用イベント
定義されたスキーマを使用しない任意のペイロードを公開および受信します。
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 の両方をサポートしています。

Tooling API を使用するケース：
Salesforce メタデータを他のシステムと統合するには、Tooling API を使用します。メタデータ型は sObject として公開されるため、複合型の 1 つのコンポーネントにアクセスできます。この項目レベルのアクセスにより、複合型のメタデータに対する操作時間を短縮できます。Force.com アプリケーション用のカスタム開発ツールを作成することもできます。たとえば、Tooling API を使用して、Apex クラスとトリガや Visualforce ページとコンポーネントの作業コピーを管理およびリリースすることができます。また、チェックポイントまたはヒープダンプマーカーの設定、匿名 Apex の実行、ログ記録情報およびコードカバー率情報へのアクセスも可能です。

REST と SOAP は両方ともサポートされています。