如何应用过滤器来改装请求?

时间:2016-06-22 13:14:36

标签: android retrofit retrofit2

在我的服务器中,我有一个名为Sync的表,如下所示:

}  
"name": "Sync",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"uuid": {
  "type": "string"
},
"table": {
  "type": "string"
},
"action": {
  "type": "string"
},
"timeChanged": {
  "type": "number"
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}

在我的数据库中,我在此表中有以下记录:

Sync": {
  "34": "{\"uuid\":\"287c6625-4a95-4e11-847e-ad13e98c75a2\",\"table\":\"Property\",\"action\":\"create\",\"timeChanged\":1466598611995,\"id\":34}",
  "35": "{\"uuid\":\"287c6625-4a95-4e11-847e-ad13e98c75a2\",\"table\":\"Property\",\"action\":\"update\",\"timeChanged\":1466598625506,\"id\":35}",
  "36": "{\"uuid\":\"176aa537-d000-496a-895c-315f608ce494\",\"table\":\"Property\",\"action\":\"update\",\"timeChanged\":1466598649119,\"id\":36}"
}

如何通过@GET请求应用过滤器,并且我得到所有记录,其中timeChanged属性大于或等于" 1466598625506"。

我确实尝试过:

    @GET("Syncs")
Call<List<Sync>> getAllSyncsAfterThisTimeStamp(@Query(("filter[where][timeChanged]=>")) long timeChanged);

但是返回一个空数组&#34; []&#34;。请问有关如何完成此过滤的任何想法?

1 个答案:

答案 0 :(得分:1)

在服务器端可以有解决方案。我不认为单靠改造就能完成这项任务。 您可以在服务器端编写一个逻辑,它将get参数作为数字并返回大于或等于该数字的所有对象。 对应于此服务器脚本,您可以在可以传递查询参数并获得所需结果的位置发出请求。您无法从get或post请求运行数据库查询。