更新Parse安装对象会将其删除

Edr*_*nst 10 delphi parse-platform delphi-10.1-berlin

我使用REST API调用创建一个安装对象,如下所示:

curl -X POST \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
    "deviceType": "ios",
    "deviceToken": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "channels": [
      ""
    ]
  }' \
https://<your.parseprovider.here>/1/installations
Run Code Online (Sandbox Code Playgroud)

安装对象已创建并由响应指示:

{
"objectId": "EmqGmZXGEm",
"createdAt": "2017-02-15T10:13:18.647Z"
}
Run Code Online (Sandbox Code Playgroud)

现在假设我想更新channels字段以在安装对象中包含"foo"通道,我可以简单地发出一个调用:

curl -X PUT \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
    "channels": [
      "",
      "foo"
    ]
  }' \
https://<your.parseprovider.here>/1/installations/EmqGmZXGEm    
Run Code Online (Sandbox Code Playgroud)

然后响应表明成功:

{
"updatedAt": "2017-02-15T10:18:31.055Z"
}
Run Code Online (Sandbox Code Playgroud)

但是,当我像这样执行PUT调用时(如在REST API文档中,请注意包含deviceType和deviceToken字段):

curl -X PUT \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
    "deviceType":"ios", 
    "deviceToken":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "channels": [
      "",
      "foo"
    ]
  }' \
https://<your.parseprovider.here>/1/installations/EmqGmZXGEm
Run Code Online (Sandbox Code Playgroud)

我现在得到以下回复:

{
"code": 101,
"error": "Object not found."
}
Run Code Online (Sandbox Code Playgroud)

现在突然从Parse服务器数据库中删除了安装对象.

一旦deviceToken字段包含在PUT请求中,这似乎就会发生.

这应该发生,或者我错过了什么?我正在使用Delphi的Parse API,因为这种"现象"而破产.如果错误是由于应该在服务器端修复的Parse错误引起的,我宁愿不破解API.

SAC*_*ACn 1

尝试PATCH代替PUT. 见表。​ PUT 和 PATCH 都可以用于更新。