0

MyOB 的 AccountRight 文档页面提供了基于其 UID 和 RowVersion 编辑客户的示例。但是,它不包括如何更新与该客户关联的特定地址记录。

举例来说,我有一个企业名称为“我的企业客户”的客户,并保存了 5 个地址。如何在保留地址 1、2、4 和 5 的原始记录的同时更新地址 #3?

仅在客户“地址”JSON 属性上添加特定更新的地址记录会删除除此之外的所有其他地址。

在此处输入图像描述

4

1 回答 1

1

您所描述的是使用 PATCH HTTP 动词的愿望。不幸的是,最后我检查了(根据当前的文档,MYOB API仍然只支持 PUT,这意味着您必须提供完整、完整的 JSON 对象,因为它基本上“替换”了客户公司文件中的内容。

您的 API 调用和代码将遵循类似于以下步骤的内容:

  1. 获取 /Contact/Customer/{guid}
  2. 对数据进行修改(在您的情况下,更新地址 3)
  3. 将更新后的对象放入 /Contact/Customer/{guid} URL。

当然,您可能不想每次都这样做,因此您可以 GET 并缓存结果,并使用 RowVersion 来确定缓存中是否有过时的内容。如果是这样,预计会出现 HTTP 409 错误,因为您在 PUT 中提供的 RowVersion 与 API 中资源的最新 RowVersion 不匹配 - 但错误将帮助您到达那里。

于 2019-11-29T23:31:23.833 回答