‫Kursleiter: In den letzten
‫beiden Videos haben wir also einen verschachtelten POST-Endpunkt
‫erstellt, um neue Rezensionen zu einer bestimmten Tour zu erstellen.
‫Lassen Sie uns nun
‫darauf aufbauen und auch einen verschachtelten GET-Endpunkt erstellen.
‫Wir haben also bereits unsere
‫getAllReviews-Handlerfunktion implementiert, oder?
‫Aber im Moment ist alles, was es tut, im Grunde genommen
‫eine Reihe aller Bewertungen in der Bewertungssammlung zu erhalten.
‫Ein häufiger Anwendungsfall für Ihre API könnte
‫nun darin bestehen, ein Array aller Bewertungen
‫einer bestimmten Tour abzurufen, also
‫sehr ähnlich wie bei createReview, oder?
‫Also im Grunde ähnlich wie diese Route
‫hier, aber außer mit GET.
‫Also im Grunde so etwas, okay?
‫Um dies zu implementieren, müssen
‫wir also nur einige
‫einfache Änderungen an unserer getAllReviews-Handlerfunktion vornehmen, oder?
‫Denn dank der Merge-Parameter und
‫dieser Art der Umleitung, die wir hier im letzten
‫Video implementiert haben, wird diese getAllReviews-Handler-Funktion
‫jetzt automatisch aufgerufen, wenn eine GET-Anfrage nach
‫einer URL vorliegt, die
‫aussieht so und
‫erhält auch Zugriff auf die tourId,
‫und wieder dank mergeParams auf true gesetzt.
‫Gut?
‫Also lass uns hier einfach ein paar ganz einfache Änderungen vornehmen, in Ordnung?
‫Und was wir hier tun
‫werden, ist zu überprüfen, ob es eine Tour-Id gibt, und wenn
‫es eine gibt, nun, dann werden wir
‫nur nach Bewertungen suchen, bei denen die Tour dieser Tour-Id entspricht, okay?
‫Das ist also
‫etwas, das mit find sehr einfach zu implementieren ist, oder?
‫Im Grunde ist das, was wir tun, ungefähr so.
‫Also, wenn es eine Anfrage gibt. Parameter. tourId, dann
‫wollen wir ein Filterobjekt erstellen, das
‫wir dann später gleich hier verwenden werden.
‫Lassen Sie es uns gleich hier ablegen, und
‫wir müssen es auch irgendwie initialisieren.
‫Also, lass filtern, weil wir das dann mutieren wollen, okay?
‫Wenn es also eine tourId gibt, sollte dieser
‫Filter gleich tour: req
‫sein. Parameter. tourId.
‫Okay, und wenn es eine TourId gibt, dann
‫ist dieses Objekt hier im Grunde das, was hier sein wird.
‫Es werden also nur die Bewertungen
‫gefunden, bei denen die Tour mit der ID übereinstimmt.
‫Wenn es sich also nur um einen regulären
‫API-Aufruf ohne verschachtelte Route handelt, ist dieser Filter einfach dieses
‫leere Objekt, und dann werden wir alle Bewertungen finden, okay?
‫Lassen Sie uns das also
‫tatsächlich testen, denn das ist alles, was wir hier ändern müssen, in Ordnung?
‫Also, lass
‫uns das hier retten, auch dieses, in Ordnung?
‫Lassen Sie uns also zunächst testen, ob
‫unser getAllReviews, also das normale, noch wie beabsichtigt funktioniert, okay?
‫So bekommen wir alle vier Bewertungen, die in unserer Sammlung sind.
‫Lassen Sie uns
‫das einfach überprüfen, und tatsächlich sind es vier Dokumente, okay?
‫Aber
‫jetzt erstellen wir unsere verschachtelte getAllReviews-Route, okay?
‫Also, was ich tun werde, ist, dieses zu kopieren.
‫Okay, und dann füge einfach Bewertungen hinzu, okay?
‫Und so ist diese Tour der City Wanderer
‫und hat tatsächlich eine Bewertung.
‫Also erwarten wir jetzt ein
‫Array mit einem Objekt darin, okay?
‫Es gab also nur eine Bewertung.
‫Und tatsächlich bekommen wir genau das.
‫Dies sind also alle Bewertungen, die auf dieser Tour vorhanden sind, also
‫die Tour mit dieser ID.
‫Und eigentlich ist das ziemlich richtig, oder?
‫Versuchen wir es mit einem anderen, und ich erinnere mich, dass dieser, also
‫der Forest Hiker, meiner Meinung nach tatsächlich zwei Bewertungen hatte.
‫Mal sehen, ob das auch funktioniert.
‫Und so ja, in der Tat.
‫Hier sind.
‫Gut?
‫Speichern wir das also noch in diesem Tours/Review-Ordner und
‫holen wir AllReviews on tour.
‫OK großartig.
‫Das ist eigentlich alles, was ich Ihnen über verschachtelte Routen zeigen musste.
‫Lassen Sie uns als nächstes unseren Review-Controller weiter füllen,
‫denn im Moment haben wir wirklich nur
‫getAllReviews und createReview.
‫Und so wollen wir auch
‫aktualisieren, löschen und all das Zeug, und
‫darum kümmern wir uns in der nächsten Vorlesung.