Skip to main content

Salesforce プラットフォーム API について知る

学習の目的

この単元を完了すると、次のことができるようになります。

  • 開発の API ファーストアプローチの利点について説明する。
  • REST API、SOAP API、Bulk API、および Pub/Sub API のユースケースを挙げる。
  • 2 種類の API 制限を挙げ、それぞれの計算方法を説明する。

Salesforce での API ファースト

作成中のインテグレーションに最適な Salesforce API を探しているところですか? 皆さんはこれから、Salesforce Platform の海を航行し、API に関するすべてを学習します。

Salesforce API 環境は、大洋のように広大です。それは、Salesforce で、Salesforce プラットフォームの機能開発に API ファーストアプローチを採用しているためです。API ファーストとは、機能のために堅牢な API を作成してから、UI の設計に取り組むという意味です。このアプローチにより、皆さんのような Salesforce 開発者は、柔軟に最適な方法でデータを操作できます。

Salesforce のお客様とパートナーは常に、Salesforce 機能を拡張する新しい方法や、AppExchange で提供する画期的なアプリケーションについて検討しています。そのため、プラットフォームでの開発のために包括的なツールボックスを提供することは Salesforce の最重要事項です。このアプローチにより、Salesforce も API に基づいて UI を作成し、両方の動作の一貫性を保つことができます。

このモジュールでは API の概要を確認し、Salesforce の API スイートを調べ、いくつかの一般的な API を実際に使用してみます。こうした情報はすべて、プロジェクトに最適な API を選択するときに必要な知識として役立つでしょう。

Salesforce データ API

このモジュールでは、Salesforce API の海に浮かぶ主要な島、つまり、よく使用される API を取り上げます。それは、REST API、SOAP API、Bulk API、Pub/Sub API です。これらがまとまって Salesforce データ API になります。これらの API の目的は、ユーザーが Salesforce データを操作したりデータ変更に登録したりできるようにすることです。これに対し、他の API では、ページレイアウトのカスタマイズやカスタム開発ツールの作成が可能になります。他の Salesforce API を使用して、Salesforce データのサブセットを操作することもできます。たとえば、Analytics REST API は、Analytics に特化されています。一方で、これら 4 つの API は、コア Salesforce データの範囲全体に広く適用されます。

Salesforce データ API

REST API

REST API は、RESTful 規則に基づいたシンプルながら強力な Web サービスです。あらゆる種類の Salesforce 機能を REST リソースと HTTP メソッドを介して公開します。たとえば、レコードの作成、読み取り、更新、削除 (CRUD)、データの検索またはクエリ、オブジェクトメタデータの取得、組織の制限に関する情報のアクセスなどができます。REST API では、XML と JSON の両方がサポートされます。

REST API は、使いやすい軽量の要求/応答フレームワークであるため、モバイルアプリケーションや Web アプリケーションの作成に適しています。

SOAP API

SOAP API は、同名の業界標準プロトコルに基づいた堅牢で強力な Web サービスです。Web Services Description Language (WSDL) ファイルを使用して、API でデータにアクセスするためのパラメーターを厳密に定義します。SOAP API では、XML のみがサポートされます。SOAP API 機能のほとんどは、REST API でも使用できます。どちらの標準がニーズにより合致するかで判断してください。

SOAP API は WSDL ファイルを API とコンシューマー間の正式な契約として使用するため、サーバー間インテグレーションの作成に適しています。

Bulk API

Bulk API は、大量データの一括読み込みまたはクエリに特化した RESTful API です。ここでいう大量とは、50,000 レコード以上を意味します。Bulk API は非同期です。つまり、要求を送信したら、後で戻って結果を確認できます。この方法は、大量のデータを処理する場合に推奨されます。Bulk API には 2 つのバージョン (1.0 と 2.0) があります。どちらのバージョンも大量のデータを処理できますが、このモジュールでは使いやすい Bulk API 2.0 を使用します。

Bulk API は、組織への初回データ読み込みなど、大量のデータを扱う作業を実行する場合に適しています。

Pub/Sub API

Pub/Sub API はリアルタイムイベントを使用して外部システムと統合するために使用します。データに変更が加えられたときにトリガーするリアルタイムイベントに登録したり、カスタムイベントに登録したりできます。この API は publish-subscribe (pub/sub) モデルを使用します。このモデルでは、データ変更をブロードキャストするチャネルやカスタム通知にユーザーが登録できます。

pub/sub モデルでは、データを取得するために頻繁に API 要求を実行する必要がないため、API 要求数が削減されます。Pub/Sub API は、これを使用しないと変更の有無を頻繁にポーリングする必要が生じてしまうといったようなアプリケーションの作成に適しています。

API アクセスと認証

Salesforce API にアクセスするのに宝の地図は要りません。必要なのは、Trailhead Playground または Enterprise Edition、Unlimited Edition、Developer Edition、Performance Edition、Professional Edition (アドオン付き) のいずれかのエディションの組織だけです。自分に「API の有効化」権限があることを確認したら、いつでもインテグレーションを開始できます。

SOAP API login() コールを除く、すべての API コールには認証が必要です。サポートされている OAuth フローのいずれかを使用するか、SOAP API login() コールから取得したセッション ID で認証できます。使用を開始するには、選択した API の開発者ガイドを参照してください。

API の制限

Salesforce では、組織あたりの API コールの数を制限してインスタンスの健全性を確保しています。こうした制限は、マルチテナント環境で不正なコードが共有リソースを独占することがないように設定されています。日常的な作業を妨げることはありません。それでも、これらの制限について知っておいた方がよいでしょう。

API の制限には、タイムアウト制限、同時要求制限、合計要求の割り当ての 3 種類があります。タイムアウト制限は、1 回のコールの実行が許可される時間の長さを制限します。同時制限は、同時に実行される長時間コールの数を制限します。同時制限は組織種別によって異なります。たとえば、トライアル組織と本番組織では同時要求の制限が異なります。合計制限は、直近の 24 時間内に実行されたコールの数を制限します。合計制限は、購入した組織のエディション、ライセンスの種類 (アドオンライセンスを含む) に応じて異なります。合計制限も、組織のエディションに基づいた最小数と最大数の対象となりますが、ここでは取り上げません。詳細は、「リソース」セクションの「Salesforce Developer の制限および割り当てクイックリファレンス」リンクを参照してください。

残りの API コール数を確認するには複数の方法があります。

  • [システムの概要] ページの [API 使用状況] ボックス。([設定] から、[クイック検索] ボックスに「システムの概要」と入力し、[システムの概要] を選択します。)
  • REST API の Sforce-Limit-Info 応答ヘッダーで返される情報。
  • SOAP API のレスポンスボディ (<type>API REQUESTS</type> 内) で返される情報。
  • REST API の /limits コール。
  • 使用量ベースのエンタイトルメントの [API Request Limit per Month (月間 API 要求制限)]。ここには、組織の API コールの 30 日間の集計が表示されます。

指定した API コール数を組織が超過したら通知するように設定することもできます。これを行うには、[設定] から [クイック検索] ボックスに「API 使用状況通知」と入力し、[API 使用状況通知] を選択します。

どの API を使用するか?

インテグレーションに最適な API を選択することは重要な判断です。ここでは、最もよく使用されている API について、サポートされるデータ形式、通信パラダイム、ユースケースの情報を提供します。今後、使用する API を検討する際には、このセクションを参考にしてください。

4 つのデータ API についてはすでに取り上げました。各 API の詳細は、次に説明します。

API 参照名 種別 データの形式 コミュニケーション

REST API

REST

JSON、XML

同期

SOAP API

SOAP (WSDL)

XML

同期

Connect REST API

REST

JSON、XML

同期 (写真の処理は非同期)

ユーザーインターフェース API

REST

JSON

同期

Analytics REST API

REST

JSON、XML

同期

Bulk API

REST

CSV、JSON、XML

非同期

メタデータ API

SOAP (WSDL)

XML

非同期

Pub/Sub API

gRPC およびプロトコルバッファ

バイナリ

非同期 (データのストリーム)

Apex REST API

REST

JSON、XML、カスタム

同期

Apex SOAP API

SOAP (WSDL)

XML

同期

Tooling API

REST または SOAP (WSDL)

JSON、XML、カスタム

同期

GraphQL API

GraphQL

JSON

同期

REST API を使用するケース

REST API では、Salesforce を操作するための強力かつ便利で、シンプルな REST ベースの Web サービスインターフェースを提供します。インテグレーションや開発が容易になるという利点があり、モバイルアプリケーションや Web プロジェクトで使用するためのテクノロジーの選択としては最適です。特定のプロジェクトでは、REST API を他の Salesforce REST API と一緒に使用する場合もあります。レコードの作成、参照、更新、削除を行う UI を作成するには (リストビュー、アクション、連動選択リストの UI の作成を含む)、ユーザーインターフェース API を使用します。B2B Commerce、CMS 管理コンテンツ、Experience Cloud サイト、Chatter と連携するには、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、CMS 管理コンテンツ、Experience Cloud サイト、ファイル、通知、トピックなどにプログラムでアクセスできます。Connect REST API を使用すると、特にモバイルアプリケーションでフィード、ユーザー、グループなどの Chatter 向けの UI を構築できます。

ユーザーインターフェース API を使用するケース

Salesforce が Web、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 を使用するケース

Bulk API は、REST 規則に基づいており、大規模データセットの読み込みまたは削除用に最適化されています。Bulk API を使用して複数のバッチを送信することにより、多数のレコードを非同期でクエリ、queryAll、挿入、更新、更新/挿入または削除できます。バッチはバックグラウンドで処理されます。

一方、SOAP API は、一度に少数のレコードを更新するリアルタイムのクライアントアプリケーション用に最適化されています。SOAP API を使用しても多数のレコードを処理することはできますが、数十万のレコードがデータセットに含まれている場合には実用性に欠けます。Bulk API は、千から百万単位のレコードのデータを簡単に読み込めるように設計されています。

Bulk API の最も簡単な使用方法は、CSV ファイルを使ってデータローダーでレコードの処理ができるようにすることです。データローダーを使用すると、独自のクライアントアプリケーションを作成する必要がなくなります。

メタデータ API を使用するケース

メタデータ API を使用して、組織のカスタマイズを取得、リリース、作成、更新、または削除します。最も一般的な使い方は、Sandbox またはテスト組織から本番環境への変更の移行です。メタデータ API はカスタマイズを管理し、データ自体ではなくメタデータモデルを管理できるツールを構築するためのものです。

Visual Studio Code 向け Salesforce 拡張機能または Ant 移行ツールを使用すると、最も簡単にメタデータ API の機能にアクセスできます。どちらのツールもメタデータ API の上位に構築され、メタデータ API を使用した作業を簡略化するために標準のツールが使用されます。 

  • Visual Studio Code 向け Salesforce 拡張機能には、軽量で拡張可能な VS Code エディターを使用して Salesforce Platform 上で開発を行うためのツールが含まれています。これらのツールでは、開発組織 (スクラッチ組織、Sandbox、DE 組織)、Apex、Aura コンポーネント、Visualforce を操作する機能が提供されています。
  • Ant 移行ツールは、スクリプトまたはコマンドラインを使用してローカルディレクトリと Salesforce 組織間でメタデータを移動する場合に最適です。

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 のプログラミング言語のいずれかを使用できます。 

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 を使用するケース

プラットフォームアプリケーション用のカスタム開発ツールやアプリケーションを作成するには、Tooling API を使用します。たとえば、Tooling API を使用して、既存のプラットフォームツールに機能を追加したり、エンタープライズ統合ツールに動的モジュールを作成したりできます。また、Tooling API では特定のアプリケーションやサービスに特化した開発ツールを作成することもできます。

Tooling API の SOQL 機能は多くのメタデータ型に対応しているため、小さな単位のメタデータを取得できます。より小さな単位で取得することによりパフォーマンスが向上し、Tooling API がインタラクティブなアプリケーションの開発に最適になります。Tooling API のインターフェースには SOAP と REST が用意されています。

GraphQL API を使用するケース

クライアントが必要とするデータのみをすべて 1 回の要求で返す、応答性と拡張性の高いアプリケーションを作成できます。GraphQL API は、項目選択、リソース集約、スキーマイントロスペクションにより、従来の REST API で生じる課題を克服します。項目選択により、ペイロードのサイズを小さくし、クエリに含まれていた項目のみを返送します。集約により、クライアントとサーバー間の往復時間を短縮し、1 回の応答内で関連リソースのセットを返します。スキーマイントロスペクションにより、ユーザーはアクセス権のある型、項目、オブジェクトを参照できます。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む