REST API のアーキテクチャ
REST API は、RESTful の標準的な原則に従い、その特性を備えています。
- クライアントサーバ
- クライアントアプリケーションは、Salesforce REST API から独立しているため、それぞれが個別に管理および更新されます。
- ステートレス
- クライアントからサーバへの各要求には、要求を理解するのに必要なすべての情報が含まれている必要があります。サーバに格納されたコンテキストは使用しないでください。ただし、リソースの表現は URI を使用して相互接続されるため、クライアントは状態が変わっても進行できます。
- キャッシュの動作
- 応答にはキャッシュ可能かどうかを示すラベルが付加されます。
- 統一されたインターフェース
- すべてのリソースには、HTTPS を介した汎用インターフェースを使用してアクセスします。
- 名前付きリソース
- すべてのリソースには、Lightning Platform エンドポイントの後にベース URI を続けた形式で名前が付けられます。詳細情報と具体的な例については、「REST リソースと要求」を参照してください。
- 階層化されたコンポーネント
- クライアントとサーバの間には、プロキシサーバやゲートウェイなどを介すことができます。
REST API には、標準的な RESTful の原則に加えて、重要な特性がアーキテクチャに組み込まれており、アプリケーションを開発する際に理解および考慮する必要があります。
- 認証
- REST API では、OAuth 2.0 (セキュアな API 認証を可能にするオープンプロトコル) がサポートされています。詳細は、Salesforce ヘルプの「OAuth によるアプリケーションの認証」を参照してください。
- JSON および XML のサポート
- JSON がデフォルトです。HTTP ACCEPT ヘッダーを使用して、JSON または XML を選択するか、URI に json または xml を追加します (例: /Account/001D000000INjVe.json)。
- JavaScript Object Notation (JSON) 形式は UTF-8 でサポートされます。
- XML 要求は UTF-8 および UTF-16 でサポートされ、XML 応答は UTF-8 で提供されます。
- 圧縮
- 圧縮は、帯域幅の負荷を軽減します。この目的で REST API とクライアントの間で送信されるメッセージは圧縮されます。REST API では HTTP 1.1 仕様での定義に従い、gzip と deflate の圧縮をサポートしています。「圧縮ヘッダー」を参照してください。
- 条件付き要求
- 応答のキャッシュは、いくかの例外を除いて、HTTP 1.1 の仕様で定義された標準に準拠する条件付き要求ヘッダーによってサポートされています。「条件付き要求ヘッダー」を参照してください。
- クロスオリジンリソース共有
- クロスオリジンリソース共有 (CORS) を使用すると、Web ブラウザで他のオリジンからのリソースを要求できます。たとえば、CORS を使用すると、https://www.example.com にある JavaScript コードで https://www.salesforce.com からのリソースを要求できます。Web ブラウザで JavaScript から、サポートされている Salesforce API、Apex REST リソース、および Lightning Out にアクセスするには、コードを提供するオリジンを Salesforce CORS 許可リストに追加します。「Web ブラウザからのクロスオリジン要求の実行」を参照してください。
- Salesforce ID の長さ
- レスポンスボディでの Salesforce ID は常に 18 文字です。リクエストボディでは、15 文字または 18 文字の ID を使用できます。
- メソッドの上書き
- 使用する HTTP ライブラリで任意の HTTP メソッド名の上書きまたは設定が許可されていない場合に HTTP メソッドを上書きするには、要求パラメータ _HttpMethod を使用します。
1POST https://instance_name/services/data/v55.0/chatter/ 2/chatter/users/me/conversations/03MD0000000008KMAQ 3?_HttpMethod=PATCH&read=true - HTTPS
- クライアントとサーバ間の通信はすべて HTTPS で行います。