ベースURL
認証
すべてのリクエストのAuthorizationヘッダーにアクセストークンが含まれています。
メソッド
トークンのライフサイクル
- アクセストークンは、60分 (レスポンス内の
expires_in) 後に期限切れになります。 - OAuth 2.0から更新トークン (60日間有効、1回のみ使用可能) が返されます。期限切れになる前に交換してください。
- CCGおよびJWTアプリが、同じ資格情報で新しいトークンをリクエストします。
- すべてのメソッドが、
POST https://api.box.com/oauth2/tokenにトークンをリクエストします。
主要エンドポイント
参考情報: APIリファレンス
レート制限と再試行戦略
レート制限を超えた場合に、APIからHTTP 429が返されます。レスポンスには、retry-afterヘッダーと待機する秒数が含まれます。
戦略:
- すべてのレスポンスで
429ステータスを確認します。 retry-afterヘッダー値を読みます。- ヘッダー値の秒数以上待ってから再試行します。
- 同時に実行されるリクエスト用にジッターによる指数バックオフを使用します。
- 同じリクエストでの再試行が5回を超えないようにしてください。
エラー処理
Boxは、type、status、code、およびmessageが含まれるJSONとしてエラーを返します。
一般的なステータスコード
一般的なエラーのガイド: 一般的なエラー
ページネーション
オフセットベース (ほとんどのリストエンドポイントでのデフォルト設定)
offsetおよびlimitクエリパラメータを使用します。レスポンスには、total_countが含まれます。
オフセットベースのページネーションの上限は、10,000項目です。これを超える項目数のセットの場合は、マーカーベースに切り替えてください。
マーカーベース
usemarker=trueを使用し、前のレスポンスのnext_marker値を渡します。
SDK
すべてのSDKが、v10以上です。非推奨の生成済みパッケージ (
box-typescript-sdk-gen、box-sdk-gen、またはその他の*-sdk-genアーティファクト) は使用しないでください。
よくある落とし穴
- フォルダ0はルートです。すべてのフォルダツリーがID
0から開始されます。その他のフォルダIDの存在を想定しないようにしてください。 - サービスアカウントは、最初は空の状態です。既存のコンテンツにアクセスできるようにするには、コラボレータとして招待します。
- トークンはスコープによって制限されます。ユーザーがファイルへのアクセス権限を持っていても、アプリに必須スコープが設定されていない場合、トークンは失敗します。
- アップロードには異なるドメインが使用されます。使用されるのは
upload.box.comであり、api.box.comではありません。 - 分割アップロードには、正確なパーツサイズが必要です (最後のパーツを除く)。
- Webhookハンドラは、30秒以内に2xxを返す必要があります。必要に応じて、イベントを非同期で処理してください。
- Webhookは順不同で配信されます。冪等性のある方法でイベントを処理してください。
- インスタンスをファイルに適用する前に、メタデータテンプレートが存在している必要があります。
- メタデータクエリのテンプレートキーとフィールド名では、大文字と小文字が区別されます。
- Box AIエンドポイントを使用するには、アプリで [AIを管理する] スコープが有効になっている必要があります。
OpenAPI仕様
詳細なOpenAPI 3.1仕様は、以下の場所で公開されています。- ソース: box-openapi
- バンドルされたJSON: openapi.json
