对于一个项目,我们有一个名为Item的类。
这个Item有一个ID,Title,Description和MediaFile[]。现在,我们有了一个编辑函数,在这个函数中我们可以更改标题、描述和添加/删除MediaFile。添加MediaFile是通过向后端提交一个文件来完成的,后端返回一个Filename和Id。
当我们想要放置经过修改的Item时,后端希望有一个不同的模型,只包含ID、Title、Description和一个包含MediaFile id的Guid[]的数组。这需要在我们的前端从MediaFile[]到Guid[]进行额外的“转换”。发送完整的、更新的Item不是更有意义吗,因为我们从一开始就得到了它?
简而言之:对于类中的集合,应该发送完整的类数组还是只包含类的id的数组?
发布于 2018-12-04 14:06:20
我认为没有单一的观点,和往常一样,这是一种.一切都取决于你的需要和特殊情况。通常,正如您所提到的,同样的结果可以通过两种技术来实现:
前一种方法作为一个单一的操作,保证了更多的一致性,但也有大量后端调用的所有缺点:在失败的情况下,很难确定是整个最可靠的失败,还是部分成功。此外,如果这个批处理需要合理的时间-用户一直阻塞到请求结束(我的意思是您无法构建一个UI,与进度报告)。这是什么都不可能的情况
信函一(多个请求)为关系添加了单独的资源,并产生额外的后端调用,但更方便用户使用,并允许UI承担更多责任。您可以将批处理操作状态和进度通知用户,此外,还可以一个接一个地处理故障(r.g。应用一些重试策略)。
换言之:
依赖资源办法:
PUT /items Body: {... MediaFile: [...]}多个电话:
PUT /items Body: {...}
PUT /items/{itemId}/mediafiles/{mediaFileId} Body:{ ... MediaFileReosurse1 }
PUT /items/{itemId}/mediafiles/{mediaFileId} Body:{ ... MediaFileReosurse2 }
...
PUT /items/{itemId}/mediafiles/{mediaFileId} Body:{ ... MediaFileReosurseN }https://stackoverflow.com/questions/53613344
复制相似问题