title: 数据操作

本篇文档介绍如何进行数据操作,分为写入,更新和删除数据。

数据操作包含以下五种请求类型:

方法 说明
PUT 向指定 节点写入数据。若此节点已存在数据,会覆盖原有数据。
POST 向指定节点添加 子节点。子节点的 key 自动生成并保证唯一。
PATCH 更新指定子节点。
DELETE 删除指定节点。

写入数据

PUT 请求用于向指定节点写入数据。此方法会先清空指定节点,再写入数据。

例如,向 alanisawesome 节点写入 namebirthday

  1. curl -X PUT -d '{
  2. "alanisawesome": {
  3. "name": "Alan Turing",
  4. "birthday": "June 23, 1912"
  5. }
  6. }' 'https://docs-examples.wilddogio.com/rest/saving-data/wildblog/users.json'

成功的请求将返回 HTTP 200 OK 状态码,并且响应中会包含写入的数据。

追加子节点

POST 请求用于向指定节点添加子节点。新增子节点的 key 由 Wilddog Sync 自动生成并保证唯一。 新增子节点的 key 基于时间戳和随机算法生成,并可以按照添加时间进行排序。

例如,追加子节点到 posts 节点:

  1. curl -X POST -d '{
  2. "author": "alanisawesome",
  3. "title": "The Turing Machine"
  4. }' 'https://docs-examples.wilddogio.com/rest/saving-data/wildblog/posts.json'

posts 路径下的数据将会是这样:

  1. {
  2. "posts": {
  3. "-JRHTHaKuITFIhnj02kE": {
  4. "author": "alanisawesome",
  5. "title": "The Turing Machine"
  6. }
  7. }
  8. }

成功的请求将返回 HTTP 200 OK 状态码,并且响应中会包含新数据的key:

  1. {"name":"-JRHTHaKuITFIhnj02kE"}

提示:

POST 请求可能默认的 Content-Typeapplication/x-www-form-urlencoded,为防止解析数据失败,需要指定 Content-Typeapplication/json

更新数据

PATCH 请求用于更新指定子节点。

例如,更新 gracehopnickname

  1. //原数据如下
  2. {
  3. "gracehop": {
  4. "nickname": "Nice Grace",
  5. "date_of_birth": "December 9, 1906",
  6. "full_name ": "Grace Lee"
  7. }
  8. }

只更新 gracehopnickname:

  1. curl -X PATCH -d '{
  2. "nickname": "Amazing grace"
  3. }' 'https://docs-examples.wilddogio.com/rest/saving-data/users/gracehop.json'

成功的请求将返回 HTTP 200 OK 状态码。

PATCH 请求支持多路径更新,可以只调用一次方法更新多个路径的数据。

例如,同时更新 b 节点下的 d 和 x 节点下的 z:

  1. //原数据如下
  2. {
  3. "a": {
  4. "b": {
  5. "c": "cc",
  6. "d": "dd"
  7. },
  8. "x": {
  9. "y": "yy",
  10. "z": "zz"
  11. }
  12. }
  13. }

正确示例:

  1. curl -X PATCH -d '{"b/d":"updateD", "x/z":"updateZ"}' \
  2. 'https://samplechat.wilddogio.com/a/.json'

更新后数据如下:

  1. {
  2. "a": {
  3. "b": {
  4. "c": "cc",
  5. "d": "updateD"
  6. },
  7. "x": {
  8. "y": "yy",
  9. "z": "updateZ"
  10. }
  11. }
  12. }

错误示例:

  1. // 错误的多路径更新写法,会覆盖原有数据
  2. curl -X PATCH -d '{"b":{"d":"updateD"}, "x":{"z":"updateZ"}}' \
  3. 'https://samplechat.wilddogio.com/a/.json'

更新后数据如下

  1. {
  2. "a": {
  3. "b": {
  4. "d": "updateD"
  5. },
  6. "x": {
  7. "z": "updateZ"
  8. }
  9. }
  10. }

删除数据

DELETE 请求用于删除指定节点。

  1. curl -X DELETE \
  2. 'https://docs-examples.wilddogio.com/rest/saving-data/users/alanisawesome.json'

成功的请求将返回 HTTP 200 OK 状态码,和一个空的 JSON。