マネージメント API 概要
imgix マネージメント API は、開発者がソースをプログラムで構成し、アセットに関連する他の活動を実行できるようにします。この API は REST ベースであり、JSON:API 仕様 に準拠しています。これにより、JSON リソースを操作するための便利で一貫したインターフェースが提供されます。
imgix マネージメント API の基本 URL は https://api.imgix.com/
です。
認証
imgix マネージメント API へのすべての呼び出しには、API キーが必要です。キーを作成するには、ダッシュボードの API キー表示 に移動します。ユーザーは誰でも API キーを作成できますが、ユーザーが作成できるキーの権限は、ユーザー自身の権限以下である必要があります。アカウント管理者は ユーザー ページ でユーザーの権限を更新したり、こちらで権限について詳しく説明を読むことができます。
APIキー制限
各アカウントのAPIキー作成数には、20個の上限があります。
imgix は、以下の権限を マネージメント API でサポートしています:
- アカウント管理者: すべての権限
- アナリティクス: レポート API を使用して分析データを取得します。
- ソース: imgix ソースの作成、一覧表示、編集、デプロイ
- パージ: 削除されたアセットまたは古いアセットを imgix キャッシュから削除します。
- アセットマネージャーの閲覧: アセットマネージャーのすべてのコンテンツを一覧表示および取得します。
- アセットマネージャーの編集: 画像メタデータの編集およびアセットのアップロードをアセットマネージャーに行います (注: この権限には、暗黙的にアセットマネージャーの閲覧が含まれます。)
認証は、HTTP Authorization ヘッダーを介してリクエストで有効な API キーを渡すことで実行されます。API は、プレーンテキストでのアルファヌメリック API キーに続いて Bearer
認証タイプを期待します。
API リクエストの認証方法の例:
bash copy curl -H "Authorization: Bearer <your-api-key>" https://api.imgix.com/...
リクエストの作成
imgix マネージメント API は、REST および JSON:API 構造化ドキュメントを使用してオブジェクトの読み取りと書き込みを行います。実行するアクションに応じて、リクエスト構造がアクションの性質に一致するように変化する場合があります。
source_id
を必要とするすべてのリクエストについては、いくつかの異なる方法でこれを見つけることができます:
-
sources
エンドポイントにGET
リクエストを行うと、JSON 応答内のid
フィールドの下にあります。 -
ソースダッシュボード で見つかったソースのいずれかに移動し、URL の最後の 24 文字の文字列をコピーします。
-
ソースに移動してソース構成ページを開くと、
source_id
も見つかります。
エラー
API は、失敗した操作に遭遇したときに JSON 形式のエラーを返します。成功したリクエストで返される data
属性の代わりに、API 応答には errors
属性が含まれます。errors
の値は、次のフィールドを含む個々のエラーオブジェクトのリストになります:
エラーフィールド | 説明 |
---|---|
detail | エラーの詳細 |
id | リクエストの一意の識別子。この id を使用して、サポートがさらにトラブルシューティングを行うことができます |
status | HTTP ステータスコード (下のテーブルを参照) |
title | エラータイプ |
エラー ステータスコード | 説明 |
---|---|
400 | 不正なリクエスト / 検証に失敗しました (例: 必須フィールドが欠落しています) |
401 | 認証されていません (例: API キーまたは認証方法が無効です) |
404 | 見つかりません (例: 存在しないオブジェクトを要求しています) |
405 | 許可されていないメソッド (例: GET エンドポイントに POST を試みる) |
429 | レート制限を超過しました。速度を落とすか、サポートに連絡して、より高い制限が必要な場合に備えてください |
500 | 内部サーバーエラー |
次の例では、存在しないソースを要求しようとしています:
GET /api/v1/sources/invalid-source HTTP/1.1
Accept: application/vnd.api+json
Authorization: Bearer <api-key>
Content-Type: application/vnd.api+json
Host: api.imgix.com
curl
を使用してリクエストを実行するには:
curl \
-X GET \
-H "Accept: application/vnd.api+json" \
-H "Authorization: Bearer <api-key>" \
-H "Content-Type: application/vnd.api+json" \
"https://api.imgix.com/api/v1/sources/invalid-source"
レスポンスには、error
についての詳細が含まれます:
HTTP/1.1 404
Content-Length: 384
Content-Type: application/vnd.api+json
Date: Thu, 19 Mar 2020 02:01:43 GMT
{
"errors": [
{
"detail": "Resource not found.",
"id": "56ba72bdd33d4395b464fae69f0d31c7",
"meta": {},
"status": "404",
"title": "NotFound"
}
],
"jsonapi": {
"version": "1.0"
},
"meta": {
...
},
"server": {
...
}
}
レート制限
当社の API は、エンドポイントに応じて可変レート制限を持っています。リクエストが完了せず、レート制限エラーが返されないようにするには、以下のレート制限に基づいて マネージメント API のリクエストをスロットリングすることをお勧めします。
特定のエンドポイントのレート制限が超過された場合、新しい API リクエストに対して 429 Too Many Requests
エラーを返します。その後、レート制限が緩和されるまで、そのエンドポイントへの新しいリクエストを拒否します。以下にレート制限を示します:
imgix API | レート制限 |
---|---|
デフォルト | 秒間 4 回 |
update source | 時間毎に 60 回 |
create source | 時間毎に 60 回 |
get asset | 秒間 10 回 |
refresh asset | 分毎に 10 回 |
upload v1 | 秒間 2 回 |
purge asset | 秒間 10 回 |
プレミアム機能
プレミアム顧客は、アカウントマネージャーに連絡してレート制限変更の相談が可能です。プレミアムプランがない場合でカスタムのレート制限が必要な場合は、営業チームに連絡して、詳細をお問い合わせください。