REST APIで更新処理を呼び出し時にエラーとなる

プログラミング初心者です。

 

REST APIのPUT処理を呼び出し、JSON形式でデータ部を渡しているのですが、下記のエラーが出て更新処理が行われません。

{"code":"CB_VA01",
"id":"PRVUt6dt9j9UuNyWbIC2",
"message":"入力内容が正しくありません。",
"errors":{
"updateKey":{
"messages":[
"更新するレコードを、「id」か「updateKey」のいずれかのパラメーターで指定する必要があります。"]
},
"id":{
"messages":[
"更新するレコードを、「id」か「updateKey」のいずれかのパラメーターで指定する必要があります。"]
}
}
}

JSONの内容はdeveloper networkのレコードの更新(PUT)の例を参考に記載しており、構文は正しいように見えるのですが。。。

以下、JSON部分です。

{
    "app": 1107,
    "records": [
        {
            "updateKey": {
              "field": "test_no",
                "value": "1234567890"
            },
            "record": {
              "info_no": {
                    "value": "0000000001"
                }
            }
        },
        {
            "updateKey": {
              "field": "test_no",
                "value": "1234567891"
            },
            "record": {
              "info_no": {
                    "value": "0000000002"
                }
            }
        }
    ]
}

ご指摘いただけると幸いです。

<追記>

JSONの内容を、配列ではなく1レコード更新の構文に変更すると問題なく処理されるため、JSONエラーと考えております。JSON以外のリクエストヘッダなどは変更なしです。

 

プログラムのエラーの場合、一般的にコードに誤りがありますので、コードを記載しましょう。

>REST APIのPUT処理を呼び出し、JSON形式でデータ部を渡しているのですが、下記のエラーが出て更新処理が行われません。

複数レコードのリクエスト内容に対して、「"更新するレコードを、「id」か「updateKey」のいずれかのパラメーター…」とありますので、たぶん「/k/v1/records」とすべきところ「/k/v1/record」で呼び出していると思われます。

「/k/v1/records」と「/k/v1/record」では、リクエストの形式が違います。

rex0220様

 

ご指摘ありがとうございます。

以後、コードも併せて記載して投稿させていただきます。

また、指摘通りk/vi/recordsの箇所が誤っておりました。

修正して実行したところ、無事に更新できました。ありがとうございます。