首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >API更新对象属性中的数组:是发送ids数组还是发送完整对象?

API更新对象属性中的数组:是发送ids数组还是发送完整对象?
EN

Stack Overflow用户
提问于 2018-12-04 12:45:36
回答 1查看 94关注 0票数 0

对于一个项目,我们有一个名为Item的类。

这个Item有一个IDTitleDescriptionMediaFile[]。现在,我们有了一个编辑函数,在这个函数中我们可以更改标题、描述和添加/删除MediaFile。添加MediaFile是通过向后端提交一个文件来完成的,后端返回一个FilenameId

当我们想要放置经过修改的Item时,后端希望有一个不同的模型,只包含IDTitleDescription和一个包含MediaFile id的Guid[]的数组。这需要在我们的前端从MediaFile[]Guid[]进行额外的“转换”。发送完整的、更新的Item不是更有意义吗,因为我们从一开始就得到了它?

简而言之:对于类中的集合,应该发送完整的类数组还是只包含类的id的数组?

EN

回答 1

Stack Overflow用户

发布于 2018-12-04 14:06:20

我认为没有单一的观点,和往常一样,这是一种.一切都取决于你的需要和特殊情况。通常,正如您所提到的,同样的结果可以通过两种技术来实现:

  • PUTing整个项-资源表示,包含引用的MediaFiles到API的集合。
  • 产生多个后端调用,每个后端调用在项资源和引用的媒体文件之间创建链接。

前一种方法作为一个单一的操作,保证了更多的一致性,但也有大量后端调用的所有缺点:在失败的情况下,很难确定是整个最可靠的失败,还是部分成功。此外,如果这个批处理需要合理的时间-用户一直阻塞到请求结束(我的意思是您无法构建一个UI,与进度报告)。这是什么都不可能的情况

信函一(多个请求)为关系添加了单独的资源,并产生额外的后端调用,但更方便用户使用,并允许UI承担更多责任。您可以将批处理操作状态和进度通知用户,此外,还可以一个接一个地处理故障(r.g。应用一些重试策略)。

换言之:

依赖资源办法:

代码语言:javascript
运行
复制
PUT /items Body: {... MediaFile: [...]}

多个电话:

代码语言:javascript
运行
复制
PUT /items Body: {...}
PUT /items/{itemId}/mediafiles/{mediaFileId} Body:{ ... MediaFileReosurse1 }
PUT /items/{itemId}/mediafiles/{mediaFileId} Body:{ ... MediaFileReosurse2 }
...
PUT /items/{itemId}/mediafiles/{mediaFileId} Body:{ ... MediaFileReosurseN }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53613344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档