在客户端处理Paginated api

时间:2016-03-17 10:15:09

标签: objective-c swift rest pagination api-design

我已经创建了一个api,它遵循三个参数pagelongitudelatitude。因此,在执行请求时,您将传递用户位置和给定页面,并且api将返回按用户位置排序的组织页面。此数据在移动数据库中的客户端保存/更新。我的问题是当试图在视图中填充这些数据时,我如何在客户端知道哪些数据被更新,哪些不是,因为它是一个分页的api,它只会更新/保存页面上的对象数量?

到目前为止,我只是尝试填充它在页面上检索的对象数量,但api中的对象可能会根据用户更改位置的速度切换页面?我在考虑请求数据时在移动数据库对象中制作某种标志,但在这种情况下不太确定要做什么?

1 个答案:

答案 0 :(得分:0)

我倾向于认为您的本地数据库与用户的当前位置相关,由其经度和纬度定义。因此,如果用户更改其位置,我建议您清理本地数据库,并重新填充从服务器获取的新位置。

这将是一种简单的方法。如果您提到附近的位置,如果组织出现在之前位置的不同页面中,则可能的优化是在DB中存储每个组织的当前页面(以及页面中的位置)。检索新位置时,检查收到的每个组织是否已存储在数据库中(组织需要具有唯一ID才能执行此操作),然后更改位置/页面以匹配从服务器接收的内容新的位置。