1

コーディングするRESTful Webサービスがあり、いくつかのエンティティでPUTメソッドを実行しながら、サーバーに送信されたリクエスト日付を検証する必要があるところまで来ました。

しかし、今の大きな問題は次のとおりです: (おそらく多くの) 検証エラーにどのように対応すればよいでしょうか?

リクエスト方法と URL:

PUT http://example.dev/app_dev.php/api-1.0/labels.xml

リクエスト本文 (サーバーが受信したとき):

array(size=2)
  0 => 
    array (size=11)
      'id' => string '53' (length=2)
      'name' => string '2222' (length=4)
      'app_domain' => string '11' (length=2)
      [...]
  1 => 
    array (size=12)
      'id' => string '54' (length=2)
      'name' => string 'testname2' (length=9)
      'controllpanel_domain' => string 'testname2' (length=9)
      'label' => string 'testname2' (length=9)
      'app_domain' => string 'testname2' (length=9)
      [...]

私は現在、次の応答で終了します。HTTP ステータス コードは 400 です。

XMLで:

<?xml version="1.0" encoding="UTF-8"?>
<result>
    <status>
        <![CDATA[error]]>
    </status>
    <code>400</code>
    <text>
        <![CDATA[Bad Request]]>
    </text>
    <message>
        <![CDATA[Unable to validate label entities]]>
    </message>
    <violations>
        <object>
            <object>
                <label>
                    <entry>
                        <violation_message>
                            <![CDATA[This value should not be blank]]>
                        </violation_message>
                    </entry>
                </label>
                <controllpanel_domain>
                    <entry>
                        <violation_message>
                            <![CDATA[This value should not be blank]]>
                        </violation_message>
                    </entry>
                </controllpanel_domain>
                <app_domain>
                    <entry>
                        <violation_message>
                            <![CDATA[This value is too short. It should have 3 characters or more]]>
                        </violation_message>
                    </entry>
                    <entry>
                        <violation_message>
                            <![CDATA[This value should be 333 or more]]>
                        </violation_message>
                    </entry>
                </app_domain>
            </object>
        </object>
        <object>
            <object>
                <controllpanel_domain>
                    <entry>
                        <violation_message>
                            <![CDATA[This value should be a valid number]]>
                        </violation_message>
                    </entry>
                </controllpanel_domain>
                <app_domain>
                    <entry>
                        <violation_message>
                            <![CDATA[This value should be a valid number]]>
                        </violation_message>
                    </entry>
                </app_domain>
                <login_left_text>
                    <entry>
                        <violation_message>
                            <![CDATA[This value should not be blank]]>
                        </violation_message>
                    </entry>
                </login_left_text>
            </object>
        </object>
    </violations>
</result>

jsonで:

{
    "status": "error",
    "code": 400,
    "text": "Bad Request",
    "message": "Unable to validate label entities",
    "violations": [
        {
            "object": {
                "label": [
                    {
                        "violation_message": "This value should not be blank"
                    }
                ],
                "controllpanel_domain": [
                    {
                        "violation_message": "This value should not be blank"
                    }
                ],
                "app_domain": [
                    {
                        "violation_message": "This value is too short. It should have 3 characters or more"
                    },
                    {
                        "violation_message": "This value should be 333 or more"
                    }
                ]
            }
        },
        {
            "object": {
                "controllpanel_domain": [
                    {
                        "violation_message": "This value should be a valid number"
                    }
                ],
                "app_domain": [
                    {
                        "violation_message": "This value should be a valid number"
                    }
                ],
                "login_left_text": [
                    {
                        "violation_message": "This value should not be blank"
                    }
                ]
            }
        }
    ]
}

より良いデータで対応できますか?

4

1 に答える 1

0

400 Bad Requestこの場合、リクエストが適切にフォーマットされていないという点で、 a が適切なレスポンス コードになると思います。明らかに、応答本文で検証エラーの詳細を提供できます。

他の 4XX シリーズの応答のほとんどは、ユーザーの認証/認可、リソースまたはメソッド mot の検出、または要求ヘッダーが適切に送信されていないという問題に関連しています。

あなたの場合、問題は送信されたデータにあるため、おそらく 400 が最適な応答コードです。

于 2012-11-26T18:04:31.053 に答える