执行 PUT 请求以更新整个项目或 DELETE + POST 会更好吗?

Would it be better to do a PUT request to update a whole item or DELETE + POST?

当这个问题出现时,我正在尝试更新 API 上的一些客户记录。

首先我从 API 请求客户对象并将其转换为一个数组,我必须执行的更新包括将一个相当大的第二个数组附加到我第一个得到的数组,所以我决定这样做,然后使用 UPDATE 上传整个新数组来代替旧数组。

因为这是实际的 API 并且我所做的每一个更改都会直接投入生产,我不确定这是否会起作用,我认为我总是可以删除旧对象并制作上传新文件的简单 POST 请求。

这是负责上传新数组($response)的方法。

function updateReceipt($response, $receiptId, $uri4, $token){
    $ch = curl_init();

    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_URL => $uri4.$receiptId,
        CURLOPT_CUSTOMREQUEST => 'PUT',
        CURLOPT_POSTFIELDS => http_build_query($response),
        CURLOPT_HTTPHEADER => array("Content-Type: application/json", "key: ".$token)
    );
    curl_setopt_array($ch, $options);

    $response = curl_exec($ch);
    $response = json_decode($response, true);

    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    echo "Status code: $http_code ";

    curl_close($ch);

    return $updated;
}

那么,PUT 方法会接受整个数组并更新客户记录吗? PUT 是否需要进行更准确的更改才能正常工作?

您如何看待第一个 DELETE,POST 下一个解决方案?会不会更有效率?

谢谢大家的帮助!

如果您确定旧对象没有引用其他数据,那么您可以delete_post,但如果它与其他一些数据相关,则不是正确的解决方案。