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回/日
*バッチProductDetails10回/分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-Limit1分あたりに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-LimitAPIをリクエストできる最大回数
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へのアクセスまたは使用に関する技術的なヘルプ情報については、サポートページをご覧ください