重要な概念
重要な概念
API 構造
Frame.io API は、レート制限、リソースコレクションのページネーション、バージョン管理、エラーなど、一般的な概念をサポートしています。このセクションでは、それぞれの固有な部分について説明します。
整理とスタイル
API は、一般的な REST 原則を中心にして整理されています。すべてのリクエストは SSL によって行う必要があります。エラーを含む、すべてのリクエストおよび応答本文は、JSON でエンコードされます。
特に指定しない限り、API メソッドは、次に準拠します。
- 値のないプロパティは、未定義ではなく
nullを使用します - 属性名には、「スネークケース」が使用されます(例:
first_name) - タイムスタンプは、ISO-8601 形式でレンダリングされます(例:
2016-02-03T16:38:46.985Z)
パスの規則
アカウント/チーム/プロジェクト/アセット/コメント
一般的に、Frame.io API のリソースパスは、1 つの親レベル内まで、上記の階層モデルに従います。直感的に使用できる場所では、API は、論理的に言えば、厳密に所有されているオブジェクトのスタンドアロンリソースパスをサポートしています。
例えば、Frame.io API は、次の両方のパスをサポートしています。
GET /accounts/:id/teams—アカウントのすべてのチームを返します。GET /teams—呼び出し元ユーザーのすべてのチームを返します。GET /teams/:id—特定のチームに関する詳細を返します。
もう 1 つの例:コメントは、アセットコンテキスト外ではあまり意味がないため、コメント収集メソッドおよびコメント作成メソッドは、アセットスコープ内に存在します。ただし、コメントを更新または削除すると、アセットコンテキストはそれほど意味がなく、リソースパスから省略されます。
GET /assets/:id/commentsPOST /assets/:id/commentsPUT /comments/:idDELETE /comments/:id
スコープ
OAuth2.0 を介してトークンを取得するか、開発者ポータルを介して直接取得するかにかかわらず、すべての API トークンは、「スコープ」の明示的なリストに関連付けられている必要があります。スコープは、リソース(Asset など)とアクション(create など)の組み合わせを参照し、ドット表記で表現されます。
例えば、asset.create スコープを持つトークンは、新しいアセットを作成できます。
開発者トークンで実装を使用している場合、スコープが設定され、アクセストークン自体に割り当てられます。OAuth アプリケーションを使用している場合、アプリケーションのスコープが定義され、ユーザーは、アプリケーションを初めて操作するとき、リクエストされたスコープで動作する権限をアプリケーションに付与することに同意します。
開発者トークンとアプリケーションで使用可能なスコープには、次が含まれます(一部のスコープは、すべてのユーザーが使用できるわけではなく、問題が発生したときに呼び出されることに注意してください)。
ページネーション
結果のコレクションを返す API メソッドは、常にページネーションされます。ページネーションされた結果を期待するすべてのメソッドは、次のクエリパラメーターに応答し、次のヘッダー属性を返します。
さらに、ページネーションされた結果には Link 、次の情報を含んだ応答ヘッダー(RFC-5988 を参照)が含まれます。
next—対応する URL は、次のページへのリンクです。prev—対応する URL は、前のページへのリンクです。last—対応する URL は、最後のページへのリンクです。
メモ: next も prev リンクも存在しない場合、返された最初のページが唯一のページであることを示します。