Ich bin eine API-Operation zum Abrufen einer Liste von Objekten aufrufen, und dann, für jedes Objekt in dieser Liste, ich eine andere API-Operation aufrufen, um zusätzliche Details des Objekts abrufen und diese Details in die hinzufügen Objekt. Das Ziel ist, eine Liste von Objekten mit allen Eigenschaften (oder Details) zurückzugeben, die ich brauche. Im folgenden Beispiel erhält der Aufruf /allObjects
eine Liste aller Objekte mit 2 Eigenschaften - id
und k1
. Aber meine Anwendung benötigt 3 Eigenschaften, id
, k1
und k4
. Also rufe ich eine andere API-Methode auf, um detaillierte Informationen für jedes Objekt zu erhalten, einschließlich der Eigenschaft k4
. Ich kopiere diese detaillierte Eigenschaft in das ursprüngliche Ergebnismengenobjekt und gebe das "angereicherte" Ergebnis zurück. Aber die Latenzkosten können hoch sein. Was ist der beste Weg, dies zu erreichen, ohne die Anwendung zu sehr zu verlangsamen? In der realen Welt habe ich es mit 500-2000 Objekten zu tun.Kombinieren der Ergebnisse mehrerer API-Aufrufe
GET /allObjects yields JSON results =>
{
"data" : [
{
"id" : "123",
"k1" : "v1"
}, {
"id" : "456",
"k1" : "v1"
}
]
}
for (obj in results.data) {
GET /object/{obj.id} yields JSON result =>
{
"data" : {
"id" : "123",
"k1" : "v1",
"k2" : "v2",
"k3" : "v3",
"k4" : "v4"
}
}
// Add k4 property to original result-set object, and assign
// it the value of the k4 property in the individual result object.
obj.k4 = result.data.k4;
}
return results.data;