Ich versuche, Beiträge meiner Freunde wie soziale Netzwerke zu bekommen. Da ich die Dinge wie "INNER JOIN" auf der Client-Seite nicht mit Easy-Tabellen verwenden kann, muss ich benutzerdefinierte API verwenden. Hier ist mein Ansatz:Azure mobile Apps benutzerdefinierte API-Ausnahme
Android-Client:
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;
Ich bin nicht einmal sicher, ob dies eine richtige Art und Weise, es zu tun ist, oder wir können Tabellen zugreifen in einfache Tabellen wie diese, aber es gibt keine Details im Sonderdruck. Ausnahme ist "Fehler beim Verarbeiten der Anfrage". Danke im Voraus.
Danke, es sieht aus wie Problem gelöst. Außerdem wirkt invokeApi veraltet, ist das nicht der richtige Weg? – shanks
Warum sagen Sie, dass invokeApi veraltet aussieht? –
Es sieht in Android Studio veraltet aus, es funktioniert trotzdem danke. – shanks