Salesforceの導入サポート、開発・連携を行う(株)FDCのエンジニアチームが、Salesforce APIの作成方法について初心者の方にも分かりやすく解説します。
Salesforce APIを作成する方法は大きく分けて二つあります。1つは「接続アプリケーション」を作成して標準APIを利用する方法、もう一つは「Apex REST API」を使ってカスタムAPIを作成する方法です。
この記事では、それぞれの作成方法について具体的な手順を詳しく解説していきますのでぜひ最後まで読んでみてください。。
Salesforce APIの作成方法は2種類ある
Salesforceでは、外部システムとの連携やデータのやり取りを実現するために、APIを利用します。API作成の方法は、利用目的に応じて以下の2つのアプローチがあります。
方法1:接続アプリケーションの作成(標準API利用)
接続アプリケーションを作成することで、SalesforceのREST APIやSOAP APIといった標準APIを外部システムから利用できるようになります。この方法は、すでにSalesforceが提供している機能を外部から呼び出す際に使用します。OAuth認証を設定し、Consumer KeyとConsumer Secretを取得することで、セキュアにAPIへアクセスできます。
方法2:Apex REST APIの作成(カスタムAPI作成)
Apexコードを使って独自のREST APIエンドポイントを作成する方法です。標準APIでは実現できない複雑なビジネスロジックや、複数オブジェクトを横断した処理を一つのAPIとして公開したい場合に使用します。自由度が高く、組織固有の要件に対応できます。
| 作成方法 | 用途 | 難易度 | カスタマイズ性 |
|---|---|---|---|
| 接続アプリケーション | 標準APIの利用 | 低 | 中 |
| Apex REST API | 独自APIの作成 | 高 | 高 |
【方法1】接続アプリケーションを作成してAPIを利用する手順
接続アプリケーションは、外部アプリケーションがSalesforce APIにアクセスするための認証基盤となります。ここでは、接続アプリケーションの作成からAPI認証情報の取得までを順を追って説明します。
1. API有効化の確認
まず、ユーザープロファイルでAPIが有効化されているかを確認します。
- Salesforceにログインし、右上の歯車アイコンから「設定」を選択
- クイック検索ボックスに「ユーザ」と入力し、「ユーザ」を選択
- 対象ユーザーの「プロファイル」列の値をクリック
- 「APIの有効化」にチェックが入っているか確認
チェックが入っていない場合は、システム管理者権限で有効化する必要があります。
2. 接続アプリケーションの作成
次に、接続アプリケーションを新規作成します。
- 「設定」から「クイック検索」ボックスに「アプリケーション」と入力
- 「アプリケーションマネージャー」を選択
- 右上の「新規接続アプリケーション」ボタンをクリック
- 基本情報を入力(接続アプリケーション名、API参照名、取引先責任者メール)
3. OAuth設定の有効化
OAuth認証を設定することで、セキュアなAPI接続が可能になります。以下の設定を行います。
- 「OAuth設定の有効化」にチェックを入れる
- 「コールバックURL」を入力(例:https://login.salesforce.com/services/oauth2/callback)
- 「選択したOAuthスコープ」で必要な権限を選択(例:api、refresh_token、full)
- 「保存」をクリック
保存後、2~10分程度待つと、Consumer KeyとConsumer Secretが利用可能になります。
4. Consumer KeyとConsumer Secretの取得
作成した接続アプリケーションから認証情報を取得します。
- 「設定」→「アプリケーションマネージャー」から作成した接続アプリケーションを検索
- 右側のドロップダウンメニューから「参照」を選択
- 「API (OAuth設定の有効化)」セクションで「Consumer Keyを管理」をクリック
- Consumer KeyとConsumer Secretをコピーして安全に保管
これらの認証情報を使用して、外部システムからSalesforceのREST APIやSOAP APIにアクセスできるようになります。
5. 接続アプリケーションの配布と管理
2025年9月以降、Salesforceでは組織にインストールされていない接続アプリケーションの使用が制限されるという重要な変更が実施されています。本番組織で使用する場合は、適切に接続アプリケーションをインストールする必要があります。
【方法2】Apex REST APIでカスタムAPIを作成する手順
Apex REST APIを使用すると、Salesforceの独自ビジネスロジックを外部システムに公開できるカスタムエンドポイントを作成できます。標準APIでは実現できない複雑な処理を一つのAPIとして提供したい場合に最適です。
1. Apex REST APIの基本概念
Apex REST APIは、Apexクラスに特定のアノテーションを付与することで作成します。主なアノテーションは以下の通りです。
| アノテーション | HTTPメソッド | 用途 |
|---|---|---|
| @HttpGet | GET | データの取得 |
| @HttpPost | POST | データの作成 |
| @HttpPut | PUT | データの更新 |
| @HttpDelete | DELETE | データの削除 |
| @HttpPatch | PATCH | データの部分更新 |
2. Apexクラスの作成
まず、Apex REST APIとなるクラスを作成します。
- 「設定」から「クイック検索」ボックスに「Apexクラス」と入力
- 「Apexクラス」を選択して「新規」をクリック
- 以下のサンプルコードを参考にApexクラスを作成
以下は、取引先(Account)の取得、作成、削除を行う基本的なREST APIのサンプルコードです。
@RestResource(urlMapping='/Account/*')
global with sharing class MyRestResource {
@HttpGet
global static Account doGet() {
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE Id = :accountId];
return result;
}
@HttpPost
global static String doPost(String name, String phone, String website) {
Account account = new Account();
account.Name = name;
account.Phone = phone;
account.Website = website;
insert account;
return account.Id;
}
@HttpDelete
global static void doDelete() {
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
Account account = [SELECT Id FROM Account WHERE Id = :accountId];
delete account;
}
}
3. URLマッピングの理解
@RestResourceアノテーションで指定したurlMappingが、APIのエンドポイントURLになります。上記の例では、以下のようなURLでアクセスできます。
- エンドポイントURL:https://your-instance.salesforce.com/services/apexrest/Account/[取引先ID]
- GETリクエスト:指定したIDの取引先情報を取得
- POSTリクエスト:新しい取引先を作成
- DELETEリクエスト:指定したIDの取引先を削除
4. API呼び出しのテスト
作成したApex REST APIは、cURLコマンドやPostmanなどのツールでテストできます。
- まず、OAuth認証でアクセストークンを取得
- 取得したトークンを使用してAPIエンドポイントにリクエスト
- JSON形式でレスポンスが返却されることを確認
GETリクエストのサンプル(cURL):
curl -H "Authorization: Bearer [アクセストークン]" "https://your-instance.salesforce.com/services/apexrest/Account/[取引先ID]"
5. セキュリティとベストプラクティス
Apex REST APIを作成する際は、以下のポイントに注意しましょう。
- with sharingキーワードを使用して、共有設定を適切に適用
- 入力値のバリデーションを実装し、不正なデータを防ぐ
- エラーハンドリングを適切に実装し、詳細なエラーメッセージを返す
- ガバナ制限を考慮したコードを記述する
- テストクラスを作成し、コードカバレッジを75%以上にする
REST APIとSOAP APIの違いと選び方
Salesforceの標準APIには、REST APIとSOAP APIの2種類があります。それぞれの特徴を理解して、用途に応じて選択しましょう。
REST APIの特徴
- 軽量でシンプルな構造のため、実装が容易
- JSON形式でデータをやり取りするため、Webアプリケーションやモバイルアプリに最適
- HTTPメソッド(GET、POST、PUT、DELETE)を使用した直感的な操作
- 柔軟性と拡張性に優れている
SOAP APIの特徴
- XML形式でデータをやり取りする厳密な構造
- 企業間システム連携など、高度なセキュリティやトランザクション管理が必要な場合に適している
- WS-Securityを使用した強固なセキュリティ
- 複雑な型定義やメタデータのサポート
なお、2027年のSummer ’27リリースをもって、SOAP APIのlogin()メソッドが廃止される予定です。今後の新規開発では、OAuth認証を使用したREST APIの利用が推奨されています。
API作成時の注意点とトラブルシューティング
Salesforce APIを作成・利用する際には、いくつかの注意点があります。
APIバージョンの管理
2025年6月のSummer ’25リリースで、Platform APIバージョン21.0~30.0が正式に廃止されました。また、将来的にはバージョン31.0~64.0も廃止される予定です。API開発時には、最新のAPIバージョンを使用することを推奨します。
ガバナ制限への対応
- API呼び出しには24時間あたりの上限がある(エディションによって異なる)
- バルク処理には、Bulk APIの使用を検討する
- 効率的なSOQLクエリを記述し、無駄なAPI呼び出しを削減する
認証エラーへの対処
- Consumer KeyとConsumer Secretが正しく設定されているか確認
- OAuth設定のコールバックURLが正しいか確認
- アクセストークンの有効期限が切れていないか確認(必要に応じてリフレッシュトークンで更新)
- IPアドレス制限やログイン時間制限などの組織設定を確認
セキュリティのベストプラクティス
- Consumer Secretは定期的にローテーションする
- 最小権限の原則に基づいてOAuthスコープを設定する
- 本番環境とSandbox環境で異なる接続アプリケーションを使用する
- 監査ログを定期的に確認し、不正なアクセスがないかチェックする
まとめ
いかがだったでしょうか、今回はSalesforce APIの作成方法について詳しく解説してきました。
この記事を読むことで、ある程度はSalesforce APIについてや作成方法についてご理解いただけたと思いますが、やはりエンジニア領域のこともあり、自社内では難しそうだな、と感じられている方もいらっしゃるかもしれません。
そんな方におすすめなのが、弊社(株)エフ・ディー・シーが提供している「SFsolution」。
これはSalesforce導入・活用サポートサービスで、数多くの企業様にご利用いただいています。
もちろん今回のトピックスであるAPIについてもサポート可能ですので、興味をお持ちの方はお問い合わせ、もしくは資料ダウンロードをしていただければ幸いです。
