Salesforce Lightning プラットフォーム API の概要

学習の目的

この単元を完了すると、次のことができるようになります。
  • 開発の API ファーストアプローチの利点について説明する。
  • REST API、SOAP API、Bulk API、および Streaming API の使用事例を挙げる。
  • 2 種類の API 制限を挙げ、それぞれの計算方法を説明する。

Salesforce での API ファースト

皆さん! 作成中のインテグレーションに最適な Salesforce API を探して大海原に乗り出す用意はできましたか? 船長として、眼帯とオウムを用意してください。皆さんはこれから、Lightning Platform の海を航行し、API に関するすべてを学習します。

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

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

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

Salesforce データ API

このモジュールでは、Salesforce API の海に浮かぶ主要な島、つまり、よく使用される API を取り上げます。それは、REST API、SOAP API、Bulk API、ストリーミング 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 は、組織への初回データ読み込みなど、大量のデータを扱う作業を実行する場合に適しています。

ストリーミング API

ストリーミング API は、データが変更されたらトリガされる通知の設定に特化した API です。publish-subscribe (pub/sub) モデルを使用します。このモデルでは、特定の種類のデータ変更をブロードキャストするチャネルにユーザが登録できます。

pub/sub モデルでは、ポーリングが不要になるため、API 要求数が削減されます。ストリーミング 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 の制限

経験豊富な船長であれば、船のために乗組員にいつ制限を設けるかを知っています。水夫に 1 日中ラム酒を飲むことを許していたら、何もできません。同様に、Salesforce では、組織あたりの API コールの数を制限してインスタンスの健全性を確保しています。こうした制限は、よからぬスクリプトがサーバに過大な負担をかけて海の藻屑にすることがないように設定されています。日常的な作業を妨げることはありません。それでも、これらの制限について知っておいた方がよいでしょう。

API 制限には 2 種類あります。同時制限は、同時に実行される長時間コール (実行時間が 20 秒以上) の数を制限します。合計制限は、直近の 24 時間内に実行されたコールの数を制限します。

同時制限は組織種別によって異なります。Trailhead Playground の場合、同時に実行できる長時間コールは 5 個に制限されます。Sandbox 組織の場合、長時間コールは 25 個に制限されます。

合計制限は、購入した組織のエディション、ライセンスの種類、および拡張パックに応じて異なります。たとえば、Enterprise Edition 組織の制限は、Salesforce ライセンスあたり 1,000 コール、Partner Community ライセンスあたり 200 コールです。Additional API Calls パックがある場合、同じ Enterprise Edition 組織の制限に 4,000 コールが追加されます。合計制限も、組織のエディションに基づいた最小数と最大数の対象となりますが、ここでは取り上げません。詳細は、「リソース」セクションの「Salesforce Developer の制限および割り当てクイックリファレンス」リンクを参照してください。

残りの API コール数を確認するには複数の方法があります。
  • [システムの概要] ページの [API 使用状況] ボックス。([設定] から、[クイック検索] ボックスに「システムの概要」と入力し、[システムの概要] を選択します。)
  • REST API の Sforce-Limit-Info 応答ヘッダーで返される情報。
  • SOAP API のレスポンスボディ (<type>API REQUESTS</type> 内) で返される情報。
  • Lightning Platform 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 同期
Chatter REST API REST JSON、XML 同期 (写真の処理は非同期)
ユーザインターフェース API REST JSON 同期
Analytics REST API REST JSON、XML 同期
Bulk API REST CSV、JSON、XML 非同期
メタデータ API SOAP (WSDL) XML 非同期
ストリーミング API Bayeux JSON 非同期 (データのストリーム)
Apex REST API REST JSON、XML、カスタム 同期
Apex SOAP API SOAP (WSDL) XML 同期
Tooling API REST または SOAP (WSDL) JSON、XML、カスタム 同期

REST API を使用するケース

REST API では、Salesforce を操作するための強力かつ便利で、シンプルな REST ベースの Web サービスインターフェースを提供します。インテグレーションや開発が容易になるという利点があり、モバイルアプリケーションや Web プロジェクトで使用するためのテクノロジの選択としては最適です。特定のプロジェクトでは、REST API を他の Salesforce REST API と一緒に使用する場合もあります。レコードの作成、参照、更新、削除を行う UI を作成するには (リストビュー、アクション、連動選択リストの UI の作成を含む)、ユーザインターフェース API を使用します。Chatter、コミュニティ、おすすめの UI を作成するには、Chatter REST API を使用します。処理するレコード件数が多い場合は、REST 規則に基づいて大規模データセットの処理用に最適化されている Bulk API を使用することを検討してください。

SOAP API を使用するケース

SOAP API では、Salesforce を操作するための強力かつ便利で、シンプルな SOAP ベースの Web サービスインターフェースを提供します。SOAP API を使用して、レコードを作成、取得、更新、または削除できます。また、SOAP API を使用して、検索の実行などを行うことができます。SOAP API は、Web サービスをサポートしている言語で使用できます。

たとえば、SOAP API を使用して、Salesforce を組織の ERP や会計システムと統合できます。また、リアルタイムの販売情報やサポート情報を会社のポータルに配信し、重要なビジネスシステムに顧客情報を入力することもできます。

Chatter REST API を使用するケース

特にモバイルアプリケーションで、Chatter フィード、ユーザ、グループ、フォロワーを表示するには、Chatter REST API を使用します。Chatter REST API では、ファイル、おすすめ、トピック、通知、Data.com の購入などにプログラムを介してアクセスすることもできます。Chatter REST API は、Facebook や Twitter などのフィードを提供する他の企業から公開されている API に似ていますが、Chatter 以外の Salesforce 機能も公開されます。

ユーザインターフェース 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 を使用するケース

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 組織間でメタデータを移動する場合に最適です。

ストリーミング API を使用するケース

ストリーミング API を使用して、Salesforce レコードまたはカスタムペイロードに基づいてリアルタイムのデータストリームを受信します。Salesforce レコードの変更の場合は、変更されたときに通知が公開されます。カスタム通知の場合は、イベントメッセージを公開できます。登録者は、プッシュ技術をシミュレートする Bayeux プトロコルの実装である CometD を使用して通知を受信できます。クライアントは、Apex トリガを使用するか、プロセスビルダーと Flow Builder を宣言的に使用して、一部のイベント種別に登録することもできます。

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

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

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

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる