Digi-Key APIは、OAuth 2.0 Authorization Frameworkを実装します。Oauth 2 Frameworkは、サードパーティアプリケーションに保護されたリソースへの安全なアクセスを委任する業界標準の方法です。DK APIに対して行うすべてのリクエストには、アクセストークンが必要です。
必要なスキルは、OAuth 2.0に精通していることと、OAuth 2.0で承認コードの付与フロー、承認エンドポイント、トークンエンドポイント、リダイレクションエンドポイント、ベアラートークン、リフレッシュトークンの利用に精通していることです。承認コードの付与フローは、DK APIにアクセスするために唯一許可されている方法です。
TLS
DK APIのリソースとサードパーティアプリケーションのリソースを保護するために、すべてのHTTPトラフィックはTLSv1.2暗号化プロトコルを使用して保護されます。クライアントアプリケーションは、TLSv1.2を使用するように開発されます。DKのリソースにアクセスする際には、エンドポイントを検証するとともに、エンドポイントがTLSを使用していることを確認してください。
アクセス制御
DK APIのリソースとサードパーティアプリケーションのリソースを保護するには、クライアントアプリケーションのクライアントIDとクライアントシークレットをプライベートに保ち、また保護する必要があります。サードパーティアプリケーションには、クライアントIDとクライアントシークレットが割り当てられます。クライアントIDとクライアントシークレットはどちらもサードパーティアプリケーションに一意です。これらは保護する必要があり、決して公開されてはなりません。
レート制限
DK API製品にはレート割り当て制限があります。 レート制限は製品ごとに適用されます。アプリケーションのレート(使用頻度)は、製品ごとにリクエスト回数/分とリクエスト回数/日の両方によって制限されます。
以下のレート制限は標準製品のものです。
| 標準製品 | レート制限/分 | レート制限/日 |
|---|---|---|
| バーコード | 120回/分 | 1000回/日 |
| *バッチProductDetails | 10回/分 | 50回/日 |
| BOMを作成する | 10回/分 | - |
| 注文サポート | 120回/分 | 1000回/日 |
| 注文 | 10回/分 | - |
| 製品情報 | 120回/分 | 1000回/日 |
| 見積 | 10回/分 | - |
*バッチProductDetailsには、1回のリクエストにつき最大50個の部品番号を格納することができます。
すべてのAPIレスポンスには、クライアントアプリケーションの使用状況を識別するために、次の一連のレスポンスヘッダーが付いています。
| ヘッダー | 説明 |
|---|---|
X-RateLimit-Limit | ユーザーが1日に行うことができる最大リクエスト回数 |
X-RateLimit-Remaining | 現在設定されているレート制限枠内で行うことができる残りのリクエスト回数 |
アプリケーションがレート制限枠に達すると、クライアントアプリケーションは次のステータスコードを受け取ります。
429 Too Many Requests
バースト制限枠を超過すると、レスポンスヘッダーに次のように表示されます。
| ヘッダー | 説明 |
|---|---|
| Retry-After | リクエストが再試行可能になるまでに待機する必要がある秒数 |
| X-BurstLimit-Limit | 1分あたりにAPIをリクエストできる最大回数 |
| X-BurstLimit-Remaining | 現在設定されているレート制限枠内で行うことができる残りのリクエスト回数 |
| X-BurstLimit-Reset | バースト制限枠がリセットされるまでの秒数 |
| X-BurstLimit-ResetTime | バースト制限枠がリセットされる時刻(GMT) |
JSONレスポンスメッセージは次のようになります。
{
"ErrorResponseVersion": "3.0.0.0",
"StatusCode": 429,
"ErrorMessage": "BurstLimit exceeded",
"ErrorDetails": "Please try again after the number of seconds in the Retry-After header",
"RequestId": "fa3e4d88-bfc4-4565-c6d5-a567633c091b",
"ValidationErrors": []
}
1日あたりの制限枠を超過すると、以下のレスポンスヘッダーが表示されます。
| ヘッダー | 説明 |
|---|---|
| Retry-After | リクエストが再試行可能になるまでに待機する必要がある秒数 |
| X-RateLimit-Limit | APIをリクエストできる最大回数 |
| X-RateLimit-Remaining | 現在設定されているレート制限枠内で行うことができる残りのリクエスト回数 |
| X-RateLimit-Reset | 超過したレート制限枠がリセットされるまでの秒数 |
| X-RateLimit-ResetTime | レート制限枠がリセットされる時刻(GMT) |
JSONレスポンスメッセージは次のようになります。
{
"ErrorResponseVersion": "3.0.0.0",
"StatusCode": 429,
"ErrorMessage": "Daily Ratelimit exceeded",
"ErrorDetails": "Please try again after the number of seconds in the Retry-After header",
"RequestId": "f4a0c1ab-8b47-4a72-e010-8ebe5d78f96c",
"ValidationErrors": []
}
ステータスコード
各APIは、送信するステータスコードを記録します。返されるステータス(レスポンス)コードはRFC 22616仕様に従っています。通常、返されるステータスコードは次のとおりです。
| HTTPステータスコード | 説明 |
|---|---|
200OK | 成功しました。 |
400 Bad Request | 入力パラメータが正しくありません。 正しくないパラメータとそれが正しくない理由をエラーメッセージに表示する必要があります。 あなたのクライアントリクエストは形式が不正か、または無効です。 要求された部品が存在していなかった可能性もありますが、その可能性は高くありません。 |
401 Unauthorized | クライアントが無効なアクセストークンを渡しました。 クライアントはトークンをリフレッシュしてから再度渡す必要があります。 または、クライアントアプリケーションでDK API製品を受信登録していません。 |
404 Not Found | リソースが存在していません。 |
405 Method Not Allowed | リソースは、指定されたHTTP動詞をサポートしていません。 形式が予期外であるリクエストを送信しようとしています。 このような例としては、POSTデータを表示する必要がある場合のGETリクエスト送信があります。 |
429 Too Many Requests | リクエスト回数がレート制限を超過しました。特定の期間内のリクエスト回数が多すぎる(> 120/分)か、現在のレート制限で使用可能な回数を超過しました。 |
500 Internal Server Error | サーバが予期したとおりに動作していません。 このリクエストはおそらく有効ですが、後で再度送信する必要があります。 |
503 Service Unavailable | このサービスはご利用いただけません。 |
サポート
DK APIへのアクセスまたは使用に関する技術的なヘルプ情報については、サポートページをご覧ください。