APIエラーレスポンス
概要
APIのエラーレスポンスに含まれるエラーコードの一覧と、コンテンツ定義に設定できるバリデーションのエラーの一覧をまとめます。
各レスポンスには code、message、fieldの項目が含まれています。
- code: エラー種別コードを意味する文字列(例:リクエストパラメータが無効な場合は
invalidが入ります) - message: Kuroco標準のエラーメッセージ
- field: エラーが発生したリクエストパラメータ、総合的なエラーの場合は出力されません
エラーコード一覧
errors[].code に入るコードは、リクエスト全体の結果を表すものと、個別の項目の内容を表すものの2種類に分かれます。
リクエスト全体のエラー
リクエストの処理そのものが失敗した場合に返却されます。HTTPステータスと1対1で対応します。
| Code | HTTP Status | 説明 |
|---|---|---|
| bad_request | 400 | リクエストの内容が不正です。 |
| unauthorized | 401 | 認証されていません。 |
| forbidden | 403 | 操作に必要な権限がありません。 |
| not_found | 404 | 対象のデータが存在しません。 |
| method_not_allowed | 405 | そのHTTPメソッドは許可されていません。 |
| not_acceptable | 406 | 指定された出力形式に対応していません。 |
| request_timeout | 408 | リクエストがタイムアウトしました。 |
| payload_too_large | 413 | アップロードされたファイルのサイズが上限を超えています。 |
| unprocessable_entity | 422 | リクエストの形式は正しいものの、内容を処理できません。 |
| internal_server_error | 500 | サーバー内部でエラーが発生しました。 |
上記のいずれにも分類されないエラーの場合は undefined が入ります。
項目単位のエラー
送信された値が入力条件を満たさなかった場合に返却されます。対象の項目は field に入ります。
| Code | 説明 |
|---|---|
| required | 必須項目が入力されていません。 |
| invalid | 項目の値が入力条件を満たしていません。 |
項目単位のエラーは、HTTPステータスと1対1で対応しません。コンテンツ定義に設定したバリデーションのエラーの場合、HTTPステータスは400で、code には required または invalid が入ります。具体的な条件とメッセージはバリデーションエラー一覧を参照してください。
バリデーションエラー一覧
本項には、コンテンツ定義に設定されたバリデーションのエラーを記載しています。リクエストに問題がある場合は、別のエラーが発生します。
共通
| Condition | HTTP Status | Code | Message(ja) | Message(en) |
|---|---|---|---|---|
| 必須チェック | 400 | required | [項目名]は必須項目です。 | [item name] is required |
タイトル
| Condition | HTTP Status | Code | Field | Message(ja) | Message(en) |
|---|---|---|---|---|---|
| 入力制限(E-mail) | 400 | invalid | subject | タイトルが不正です。 メールアドレス形式で入力してください。 | Invalid Title. Please enter in a E-mail format. |
| 入力制限(電話番号) | 400 | invalid | subject | タイトルが不正です。 電話番号形式で入力してください。 | Invalid Title Please enter in a Contact number format. |
| 入力制限(郵便番号) | 400 | invalid | subject | タイトルが不正です。 郵便番号形式で入力してください。 | Invalid Title. Please enter in a ZIP code format. |
| 入力制限(URL) | 400 | invalid | subject | タイトルが不正です。 URL形式で入力してください。 | Invalid Title. Please enter in a URL format. |
| 入力制限(数値) | 400 | invalid | subject | タイトルが不正です。 数値形式で入力してください。 | Invalid Title. Please enter in a Numeric value format. |
| 入力制限(正規表現) | 400 | invalid | subject | タイトルが不正です。 | Invalid Title |
| 入力制限(最小文字数) | 400 | invalid | subject | タイトルはx文字以上で入力してください。 | Title should be X characters or more. |
| 入力制限(最大文字数) | 400 | invalid | subject | タイトルはx文字以内で入力してください。 | Please input Title within X characters. |
テキスト
| Condition | HTTP Status | Code | Field | Message(ja) | Message(en) |
|---|---|---|---|---|---|
| 入力制限(E-mail) | 400 | invalid | ext_x | [項目名]が不正です。 メールアドレス形式で入力してください。 | Invalid [item name] Please enter in a E-mail format. |
| 入力制限(電話番号) | 400 | invalid | ext_x | [項目名]が不正です。 電話番号形式で入力してください。 | Invalid [item name] Please enter in a Contact number format. |
| 入力制限(郵便番号) | 400 | invalid | ext_x | [項目名]が不正です。 郵便番号形式で入力してください。 | Invalid [item name]. Please enter in a ZIP code format. |
| 入力制限(URL) | 400 | invalid | ext_x | [項目名]が不正です。 URL形式で入力してください。 | Invalid [item name]. Please enter in a URL format. |
| 入力制限(数値) | 400 | invalid | ext_x | [項目名]が不正です。 数値形式で入力してください。 | Invalid [item name]. Please enter in a Numeric value format. |
| 入力制限(正規表現) | 400 | invalid | ext_x | [項目名]が不正です。 | Invalid [item name] |
| 入力制限(最小文字数) | 400 | invalid | ext_x | [項目名]の文字数が不正です。 | Invalid The Number of characters of [item name] |
| 入力制限(最大文字数) | 400 | invalid | ext_x | [項目名]の文字数が不正です。 | Invalid The Number of characters of [item name] |
テキストエリア
| Condition | HTTP Status | Code | Field | Message(ja) | Message(en) |
|---|---|---|---|---|---|
| 入力制限(最小文字数) | 400 | invalid | ext_x | [項目名]の文字数が不正です。 | Invalid The Number of characters of [item name] |
| 入力制限(最大文字数) | 400 | invalid | ext_x | [項目名]の文字数が不正です。 | Invalid The Number of characters of [item name] |
画像(KurocoFilesにアップロード)
| Condition | HTTP Status | Code | Field | Message(ja) | Message(en) |
|---|---|---|---|---|---|
| 入力制限(拡張子) | 400 | invalid | ext_x | [項目名][ファイル名]が不正です。 | Invalid [item name] [File name] |
| 入力制限(ファイル容量制限) | 400 | invalid | ext_x | [項目名]容量オーバーのためファイルはアップロードできませんでした。 | [item name] Could not upload: the file size is too big |
ファイル(KurocoFilesにアップロード)
| Condition | HTTP Status | Code | Field | Message(ja) | Message(en) |
|---|---|---|---|---|---|
| 入力制限(拡張子) | 400 | invalid | ext_x | [項目名][ファイル名]が不正です。 | Invalid [item name] [File name] |
| 入力制限(ファイル容量制限) | 400 | invalid | ext_x | [項目名]容量オーバーのためファイルはアップロードできませんでした。 | [item name] Could not upload: the file size is too big |
ファイル(GSCにアップロード)
| Condition | HTTP Status | Code | Field | Message(ja) | Message(en) |
|---|---|---|---|---|---|
| 入力制限(拡張子) | 400 | invalid | ext_x | [項目名][ファイル名]が不正です。 | Invalid [item name] [File name] |
ファイル(S3にアップロード)
| Condition | HTTP Status | Code | Field | Message(ja) | Message(en) |
|---|---|---|---|---|---|
| 入力制限(拡張子) | 400 | invalid | ext_x | [項目名][ファイル名]が不正です。 | Invalid [item name] [File name] |
エラーレンスポンスサンプル
コンテンツ追加APIでsubjectが空文字、もしくは未指定だった場合のエラーのレスポンスサンプルは下記になります。
{
"errors": [
{
"code": "invalid",
"message": "タイトルは必須項目です。",
"field": "subject"
}
],
"x-rcms-request-id": "280496b2-8b45-4a9a-8a21-678feb77e2ff"
}
- 特定の項目に対するエラーの場合は
fieldに対象項目が含まれています。
警告レスポンス(warnings)
コンテンツの追加・更新など、管理画面の機能をAPI経由で実行する書き込み系のAPIでは、errors のほかに messages と warnings が返ることがあります。
| キー | 意味 |
|---|---|
errors | 処理が失敗しました。書き込みは行われていません。 |
messages | 処理が成功したことの通知です(例:「更新しました」)。 |
warnings | 書き込みは成功しましたが、一部が反映されなかった、または権限上できない操作があったことの通知です。該当する通知があるときだけレスポンスに含まれます。 |
warnings は文字列の配列です。HTTPステータスは成功時のまま(200)で、errors は空になるため、errors だけを確認していると一部が反映されていないことに気付けません。書き込み系のAPIを利用する際は、成功時も warnings を確認してください。
warnings に含まれる通知の例:
- コンテンツ定義の項目設定で編集制限が設定された項目に、許可されていないグループのメンバーが値を送信した場合。対象の項目は保存済みの値のまま維持され、他の項目のみ更新されます。
- CSV / JSON取込で読み飛ばされた行がある場合
- 承認申請で「既に申請中」「変更がないためスキップ」となった件数がある場合
編集制限に該当する項目を含めてコンテンツを更新した場合のレスポンスサンプルは下記になります。
{
"errors": [],
"messages": [
"更新しました。"
],
"warnings": [
"編集制限により次の項目は更新されませんでした: ext_1"
],
"id": 1,
"x-rcms-request-id": "280496b2-8b45-4a9a-8a21-678feb77e2ff"
}
関連ドキュメント
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。