Force.com REST リソースの理解
REST リソースは、1 つのデータレコード、レコードのコレクション、さらには動的なリアルタイム情報などの情報を抽象化したものです。Force.com REST API の各リソースは、名前付きの URI で識別され、標準 HTTP メソッド (HEAD、GET、POST、PATCH、DELETE) を使用してアクセスされます。Force.com REST API は、リソース、その URI、およびそれらの間のリンクの使用に基づきます。
リソースは、Salesforce 組織や Force.com 組織との連携に使用します。次のような操作が可能です。
- 使用できる API バージョンに関する概要情報を取得する。
- Account (取引先) などの Salesforce オブジェクトやカスタムオブジェクトに関する詳細情報を取得する。
- User (ユーザ) などの Force.com オブジェクトやカスタムオブジェクトに関する詳細情報を取得する。
- クエリまたは検索を実行する。
- レコードを更新または削除する。
たとえば、Salesforce のバージョンに関する情報を取得するとします。これを行うには、Versions リソースの要求を送信します (この例では、na1 インスタンスで cURL を使用します)。
1curl https://na1.salesforce.com/services/data/この要求の出力は、次のとおりです。
1[
2 {
3 "version":"20.0",
4 "url":"/services/data/v20.0",
5 "label":"Winter '11"
6 }
7 ...
8]
Force.com REST API リソースとアーキテクチャの重要な特性を次に示します。
- ステートレス
- クライアントからサーバへの各要求には、要求を実行するのに必要なすべての情報が含まれている必要があり、サーバに保存されたコンテキストは使用されません。ただし、リソースの表現は URL によって相互接続されるため、ステートが変わってもクライアントは処理を続行できます。
- キャッシュの動作
- 応答にはキャッシュ可能かどうかを示すラベルが付加されます。
- 統一されたインターフェース
- すべてのリソースには、HTTP を介した汎用インターフェースを使用してアクセスします。
- 名前付きリソース
- すべてのリソースは、Force.com URI に続くベース URI を使って名前が付けられます。
- 階層化されたコンポーネント
- Force.com REST API アーキテクチャでは、クライアントとリソースの間にプロキシサーバやゲートウェイなどを介在させることができます。
- 認証
- Force.com REST API は OAuth 2.0 (セキュアな API 認証を可能にするオープンプロトコル) をサポートします。詳細は「認証について」を参照してください。
- JSON および XML のサポート
- デフォルトは JSON です。HTTP ACCEPT ヘッダーを使って、JSON と XML のいずれかを選択したり、URI の最後に .json、.xml を付加したりできます (例: /Account/001D000000INjVe.json)。
- JavaScript Object Notation (JSON) 形式は UTF-8 で���ポートされます。日時情報は ISO8601 形式です。
- XML 逐次化は SOAP API と類似しています。XML 要求は UTF-8 および UTF-16 でサポートされ、XML 応答は UTF-8 で提供されます。
- フレンドリー URL
- 1 つの API コールで済むなら 2 つのコールを行う必要はありません。フレンドリー URL によって、直感的な方法で REST API 要求を作成し、アプリケーションと Salesforce 組織間の往復処理数を最小限に抑えることができます。フレンドリー URL は、API バージョン 36.0 以降で使用できます。
フレンドリー URL なしで取引先責任者の親取引先にアクセスするには、SObject Rows リソースを使用して取引先責任者レコードを要求する必要があります。その後、取引先リレーション項目を調べて取引先 ID を取得し、SObject Rows への別のコールで取引先レコードを要求します。フレンドリー URL を使用すると、取引先責任者のパス /services/data/v36.0/sobjects/contact/id/account から直接 1 回のコールで取引先にアクセスできます。
この機能は、SObject Relationships リソースで公開されています。フレンドリー URL を使用してリレーション項目にアクセスする場合のその他の例については、「フレンドリー URL を使用したリレーションのトラバース」を参照してください。