APIを生成するためにループバックのフレームワークを使用しています。今、私は、長い番号(1466598625506のようなUnix形式のタイムスタンプ)を必要とし、同期オブジェクトの配列を返すカスタムRemoteMethodを書き込もうとしています(エンドポイントとcomunicateするためにretrofitを使用しています)。私のアンドロイドアプリでは、エンドポイント「getRecodsAfterTimestamp」を呼び出すと、リクエスト内の指定されたものと等しいかより大きなtimeStamp値を持つレコードを返す必要があります。返されるものはすべてのレコード(現時点では3)です。ループバックリモートメソッドが正しい値を返さない
これは私のモデル(sync.json)は同期のように見えると呼ばれる方法です:
{
"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.jsで次のようになります。私は知らない
module.exports = function(Sync) {
Sync.getRecodsAfterTimestamp = function(timestamp, cb){
// var response;
Sync.find({where:{ or: [
{timeChanged:timestamp},
{timeChanged: {gt:timestamp } }
] }}, function(err, sync) {
cb(null,sync);
// response.push(sync);
});
// cb(null, response);
}
Sync.remoteMethod (
'getRecodsAfterTimestamp',
{
http: {path: '/getRecodsAfterTimestamp', verb: 'get'},
accepts: {arg: 'timeChanged', type: 'number', http: { source: 'query' } },
returns: {
arg: 'data',
type: 'array',
root: true
}
}
);
};
それが重要しかし、これは私の改造メソッドの宣言の場合:
@GET("Syncs")
Call<List<Sync>> getAllSyncsAfterThisTimeStamp(@Query(("getRecodsAfterTimestamp?timeChanged=")) long timeChanged);
そして、ここで私はそのようにそれを呼び出しています:
Long timeStamp = 1466598625506L;
Log.e(TAG, "Job Service task is running...");
getAllSyncsCall = espcService.getAllSyncsAfterThisTimeStamp(timeStamp);
getAllSyncsCall.enqueue(EspcJobSheculerService.this);
返します。それは2レコードだけである1466598625506
の後のすべてのレコードを返すはずです。