当前位置:  开发笔记 > 运维 > 正文

将数据与RESTful API进行比较

如何解决《将数据与RESTfulAPI进行比较》经验,为你挑选了0个好方法。

对于我正在研究定义RESTful API的网站.我相信我(大多数)使用适当的资源URI并正确使用GET/POST/UPDATE/DELETE来获得它.

然而,有一点我无法弄清楚在"REST"中执行它的正确方法是什么 - 比较列表.

假设我有一个书店,顾客可以有一个愿望清单.愿望清单由书籍(其完整的书籍记录,即名称,概要等)组成,并且客户端上存在该列表的完整副本.设计RESTful API以允许客户端查询其本地心愿单的正确性(即了解在服务器端的心愿单上添加/删除了哪些书籍)的好方法是什么?

一种选择是从服务器下载完整的愿望清单并在本地进行比较.然而,这是相当多的数据(由于嵌入的内容),这是一个具有低带宽连接的移动客户端,因此这会导致很多问题.

另一种选择是不下载整个心愿单(即不包括图书信息),而只下载书籍标识符列表.这将不是太多数据(与之前的选项相比),客户端可以在本地比较列表.但是,要获得新添加的书籍的完整书籍记录,必须为每本新书进行REST调用.同样,由于这是一个网络连接不良的移动客户端,这可能会有问题.

第三个选项和我最喜欢的是,客户端将其标识符列表发送到服务器,服务器将其与心愿单进行比较,并返回删除的书籍和添加的书籍数据.这意味着单次往返并且只有必要数量的数据.由于心愿单大小估计少于100个条目,因此仅发送ID将是最小量的数据(~0.5kb).但是我不知道什么样的调用是合适的 - 它不能GET,因为我们发送数据(并将它全部放在URL中感觉不对),它不能像我们那样进行POST/UPDATE不要改变服务器上的任何东西.显然它也不是DELETE.

你会如何实现这第三个选项?

附带问题:你将如何解决这个问题(即为什么选项3愚蠢或者有什么更好的简单解决方案)?

谢谢.

PS:第四种选择是实现更复杂的协议,其中服务器跟踪列表的变化(添加/删除),并且客户端可以例如基于版本标识符或简单地时间戳查询变化.但是,我更喜欢第三种选择,因为在实现方面,它在客户端和服务器上更简单,更不容易出错.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有