Nach langer Zeit wende ich mal mal wieder an dieses Forum =)
Ich habe eine REST-Schnittelle, dort gebe ich eine id an und bekomme einen namen.
Jetzt habe ich unter Android (zumindest auch, nicht nur) Retofit als Client Lib für die REST-Schnittelle verwendet.
Mit folgenden Zeilen kann ich mir den passenden Namen zu einer ID holen:
Code
@GET("warehouse/{wid}/name")
Observable<Response<String>> getWarehouseName(@Path(WAREHOUSE_ID) String wid);
Aus dem Programm wird das ganze so aufgerufen:
Code
protected Observable<String> getNameObservable(final String wid) {
Log.log(clazz, "getNameObservable() " + wid);
if (wid == null) {
throw new IllegalArgumentException("wid is null");
}
return warehousesService.getWarehouseName(wid).subscribeOn(Schedulers.newThread())
.flatMap(response -> {
try {
CommonResponseChecks.checkResponse(response);
return Observable.just(response.body());
} catch (NotFoundException e) {
meController.removeWarehouseId(wid).subscribeOn(Schedulers.newThread()).subscribe(() -> Log.log(clazz, "Warehouse " + wid + " removed from user"));
return Observable.error(e);
}
});
}
Alles anzeigen
Wie bekomme ich denn jetzt mit rxjava eine Methode getNames(Collection<String> wids) hin, welche die oben stehende Methode für jede ID aufruft und mir am ende eine Map<wid, name> zurück gibt?
Ich bekomme es leider nicht hin die Map mit rxjava zusammen zu puzzeln =(
lg. Dagobert