我想获取社交网络中我的朋友的帖子。由于在客户端中无法使用类似于“INNER JOIN”的东西,我必须使用自定义API。以下是我的方法:
Android客户端:
List<Pair<String, String>> params = new ArrayList<Pair<String, String>>();
params.add(new Pair("id", user.getId()));
params.add(new Pair("otherParam", otherParam));
client.getClient().invokeApi("getFeed", "POST", params, new ApiJsonOperationCallback() {
@Override
public void onCompleted(JsonElement jsonElement, Exception exception, ServiceFilterResponse response) {
System.out.println("exception: " + exception.toString());
GsonBuilder gsonb = new GsonBuilder();
Gson gson = gsonb.create();
JsonArray array = jsonElement.getAsJsonArray();
for (int i = 0; i < array.size(); i++) {
postList.add(gson.fromJson(array.get(i).getAsJsonObject().toString(), Post.class));
}
}
});
feed.js:
var api = {
post: (request, response, next) => {
var query = {
sql: 'SELECT * FROM Posts INNER JOIN Friends ON Posts.userId = Friends.followingId WHERE Friends.followingId = @id ORDER BY Posts.createdAt DESC',
parameters: [
{ id: 'id', otherParam: 'otherParam' }
]
};
request.azureMobile.data.execute(query)
.then(function (results) {
response.json(results);
});
}
};
module.exports = api;
我甚至不确定这是否是正确的操作方式,或者我们是否可以像这样访问易表中的表格,但异常打印中没有任何详细信息。异常为“处理请求时出错”。提前致谢。