エラーコードおよびレスポンス
エラーが発生した際には、下記のいずれかのHTTPステータスコードが返されます。エラーの種類によっては、さらに詳細がJSONオブジェクトのerrorおよびidentifierフィールドに含まれる場合もあります。エラーについてCxenseサポートにお問い合わせの場合にはこれらの情報をご提供下さい。さらには、detailsフィールドでエラーの原因について出力される場合もあります。
レスポンスラッピングを使用したリクエストの場合は、HTTPステータスコードは |
HTTP ステータスコード
下表にHTTPステータスコードのオーバービューと各値の意味を示します。
Code | Text | Description |
|---|---|---|
200 | OK | リクエスト成功、エラーなし。 |
400 | Bad Request | リクエストが不正なため実行されませんでした。リクエストが存在しないリソースを参照している可能性もあります。詳細はエラーメッセージでご確認ください。 |
401 | Unauthorized | 認証情報が不足しているか、誤っています。(API実行途中でこのエラーが発生した場合は、認証情報の有効期限切れが考えられます。認証文字列を再生成するようにして下さい。) |
403 | Forbidden | 指定されたメソッドの実行、あるいは指定のパラメータの使用、指定リソースへのアクセスが許可されませんでした。このエラーはAPIのアクセスにHTTPSではなくHTTPを使用した場合にも返されます。リクエストが存在しないリソースを参照したり、ユーザがどのIDが既存のリソースを参照するかを判別するためにAPIを使うことを防ぐために、これを返すこともあります。 |
404 | Not Found | 使用されるパスがどのAPIにもマッピングされません。404は欠落しているリソース(例えば、APIパスは正しいが、存在しないリソースを参照する場合)には使用されません。これらの場合は400または403が使用されます。 |
405 | Method Not Allowed | GETとPOSTメソッドのみをサポートしています。 |
413 | Payload Too Large | APIに送信されたリクエストオブジェクトは、サービスの可用性を確保するために設定された制限を超えました。バッチリクエストの場合、より小さなバッチで送信することを検討してください。このレスポンスが返された場合、リクエストの処理は試行されなかったので、より小さなバッチで再実行するのが安全です。特定のAPIの呼び出し制限はレスポンスエラーのフィールドで説明されます。大きなデータボリュームを取り込めるように設計されたAPIエンドポイントはクエリ操作を受け入れるAPIエンドポイントよりも大きなリクエストを受け入れる可能性があり、APIのエンドポイントが異なることから異なる制限で動作する可能性があることにご注意ください。 |
429 | Too Many Requests | リクエストの数が多すぎるため流量制限が適用されました。 すべてのお客様に安定したサービスを提供するために流量制限をかけることがあります。特にCxense InsightのAPIを本番サイトや本番サービスで使用される場合には、Cxenseサポートまでご相談ください。 |
500 | Internal Server Error | 予期しない内部エラーが発生しました。このエラーは発生理由の詳細が示されません。発生した場合には発生状況とともにCxenseサポートへご連絡ください。 |
503 | Service Unavailable | リクエストを処理できるサーバがありません。時間をおいてリトライするか、Cxenseサポートにご連絡ください。 |
504 | Gateway Timeout | タイムアウトの時間までにリクエストの処理を行えませんでした。複数のクエリを一つのリクエストで実行しようとしている場合には、複数のリクエストに分割してください。 |
例
$ curl -D - http://api.cxense.com/public/date
HTTP/1.0 403 Forbidden
Cache-Control: no-cache
Connection: close
Content-Type: application/json
Content-Length: 54
{"error":"Request forbidden by administrative rules."}
|
curl -D - https://api.cxense.com/profile/content/fetch
HTTP/1.1 401 Unauthorized
Server: nginx
Date: Mon, 31 Mar 2014 14:19:13 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 35
Connection: keep-alive
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
X-Content-Type-Options: nosniff
{"error":"Authentication required"}
|
$ cx.py /profile/content/fetch '{"url":"http://www.example.com"}'
{
"error": "Invalid signature"
} |
(以下の例は現在推奨している cx.py を使用した場合にはやや違った出力となります。cx.pyではJSONリクエストデータの正当性チェックを行っているため、Cxenseへ不正リクエストが送信されることを防いでいます)
$ python cxcurl.py -D - https://api.cxense.com/profile/content/fetch -d 'invalid'
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Content-Length: 47
{"error":"Invalid request: Invalid JSON input"} |
$ python cxcurl.py -D - 'https://api.cxense.com/profile/content/fetch?callback=mycb&json=invalid'
HTTP/1.1 200 OK
Content-Type: text/javascript;charset=UTF-8
Content-Length: 80
mycb({"httpStatus":400,"response":{"error":"Invalid request: Invalid JSON input"}}) |
$ python cxcurl.py -D - https://api.cxense.com/profile/content/fetch -d '{"foo":"bar"}'
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Content-Length: 75
{"error":"Invalid request: Request object does not match method signature"} |