我使用 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
安装对象已创建并由响应指示:
{
"objectId": "EmqGmZXGEm",
"createdAt": "2017-02-15T10:13:18.647Z"
}
现在假设我想更新 channel 字段以在安装对象中包含“foo” channel ,我可以简单地发出如下调用:
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
然后响应表明成功:
{
"updatedAt": "2017-02-15T10:18:31.055Z"
}
但是,当我像这样执行 PUT 调用时(如在 REST API docs 中,请注意包含 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
我现在收到以下回复:
{
"code": 101,
"error": "Object not found."
}
安装对象现在突然从 Parse 服务器数据库中删除。
这似乎是在 PUT 请求中包含 deviceToken 字段后立即发生的。
这是应该发生的,还是我错过了什么?我正在使用 Delphi 的 Parse API,由于这种“现象”,它正在崩溃。如果错误是由于应该在服务器端修复的 Parse bug 造成的,我宁愿不破解 API。
最佳答案
尝试PATCH
而不是PUT
。请参阅table 。 PUT 和 PATCH 都可以用于更新。
关于delphi - 更新 Parse 安装对象将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246977/