‫Instruktur: Baiklah, dalam kuliah
‫ini, kita akan berbicara tentang
‫sesuatu yang disebut rute bersarang, apa
‫itu, mengapa kita membutuhkannya,
‫dan bagaimana kita bisa mengimplementasikannya di Express.
‫Mari kita berpikir sejenak bagaimana
‫dalam prakteknya, kita sebenarnya ingin membuat review baru.
‫Sampai saat ini, saat membuat ulasan baru,
‫kami selalu secara manual meneruskan
‫ID tur dan ID pengguna ke badan
‫permintaan, dan kemudian membuat ulasan dari sana, kan.
‫Tidak apa-apa selama pengembangan, tetapi tentu saja, bukan
‫seperti itu ulasan yang akan
‫dibuat di dunia nyata.
‫Jadi, di dunia nyata, ID pengguna
‫idealnya berasal dari pengguna yang saat ini masuk
‫dan ID tur harus berasal dari tur saat ini.
‫Itu idealnya harus dikodekan
‫tepat di rute, jadi di URL.
‫Saat mengirimkan permintaan posting untuk tinjauan
‫baru, kami ingin mengirimkannya ke URL seperti ini.
‫Mari kita tulis di sini sebagai komentar.
‫Idealnya, kami ingin melakukan
‫permintaan posting, tur, dan ID tur, tidak terlalu
‫penting di sini, dan kemudian ulasan.
‫Oke, jadi sekarang, seperti ini, kami memiliki
‫ID tur tepat di URL dan ID
‫pengguna juga akan berasal dari pengguna
‫yang saat ini masuk.
‫Apa yang kita lihat di sini sekarang disebut rute bersarang.
‫Mereka sangat masuk akal
‫ketika ada hubungan orangtua-anak yang jelas antara sumber daya.
‫Itu jelas terjadi di sini, kan.
‫Ulasan jelas merupakan anak dari tur.
‫Rute bersarang ini
‫pada dasarnya berarti mengakses
‫sumber ulasan di sumber daya tur, oke.
‫Dengan cara yang sama, kita sebenarnya
‫juga ingin mengakses ulasan dari tur tertentu dengan cara yang sama.
‫Katakanlah kemudian dapatkan permintaan, dan lagi
‫untuk tur slash tour ID dan ulasan slash.
‫Idealnya, ini akan memberi
‫kami semua ulasan untuk tur ini.
‫Kami dapat melangkah lebih
‫jauh dan juga menentukan ID ulasan.
‫Jadi sekali lagi, hanya string acak di sini, tetapi
‫Anda mengerti maksudnya.
‫Dalam hal ini, kami akan mendapatkan
‫ulasan dengan ID ini
‫di sini di tur dengan ID ini.
‫Inilah yang dimaksud dengan rute bersarang.
‫Ini adalah cara yang lebih mudah untuk
‫membaca dan memahami cara kerja API bagi pengguna API kami.
‫Ini jauh lebih mudah daripada bermain-main
‫dengan string kueri dan semua hal seperti itu.
‫Juga, ini benar-benar menunjukkan bagaimana
‫ada hubungan yang jelas antara sumber daya
‫ini, sekali lagi, ulasan dan tur.
‫Baiklah, tapi cukup bicara.
‫Sekarang mari kita benar-benar menerapkan ini
‫dimulai dengan rute pos.
‫Sekarang, karena rute sebenarnya dimulai dengan tur, tentu saja
‫akan dialihkan ke router tur kami.
‫Kita harus mengimplementasikan fungsionalitas ini setidaknya untuk saat
‫ini, di router tur, meskipun
‫itu tampaknya agak kontra-intuitif karena kita
‫sebenarnya berurusan dengan ulasan.
‫Tapi sekali lagi, untuk saat ini, mari kita terapkan seperti ini.
‫Kami datang ke router pengguna kami dan pertama,
‫karena kami benar-benar akan
‫menggunakan ulasan
‫di sini, kami perlu mengimpor pengontrol ulasan.
‫Kontroler membutuhkan.
‫Mungkin saya seharusnya menyalin baris dari sebelumnya.
‫Controller, dan review controller.
‫Baiklah, sekarang di bagian paling bawah, dan mari kita
‫ambil kode kita untuk
‫contoh ini dari sini hanya
‫sebagai referensi.
‫Sehingga kita sekarang bisa benar-benar menerapkannya.
‫Rute yang akan kita terapkan
‫di sini adalah slash ID dan review.
‫Bagian tur ini, seperti yang sudah Anda ketahui,
‫adalah tempat kami memasang router ini
‫dan oleh karena itu, kami tidak perlu mengulanginya di sini.
‫Tapi kemudian, kami memiliki ID tur dan ulasan miring.
‫Untuk memperjelas hal ini, sebut
‫saja ID tur karena sekarang kita
‫berurusan dengan sumber
‫daya yang berbeda di sini.
‫Jadi sedikit lebih jelas untuk menyebutnya apa adanya.
‫Kami sekarang ingin mengimplementasikan create review.
‫Authcontroller dot melindungi.
‫Kami juga ingin membatasi akses hanya untuk
‫pengguna, dan tentu saja, pengontrol ulasan kami tidak
‫membuat ulasan, oke.
‫Sekali lagi, agak aneh dan kontra-intuitif untuk
‫benar-benar memanggil pengontrol ulasan di sini
‫di rute pengguna.
‫Sebenarnya, itu tidak boleh di rute pengguna.
‫Untuk beberapa alasan, saya
‫membuka rute pengguna dan bukan rute tur, jadi maaf untuk yang itu.
‫Mari kita potong dari sini, datang ke rute wisata kita, dan benar-benar
‫melakukannya di sini di bagian bawah.
‫Tentu saja kita juga perlu mendapatkan review controller.
‫Jadi sekarang kita harus baik-baik saja.
‫Itu adalah bug yang bodoh.
‫Tapi bagaimanapun, apa yang saya
‫katakan adalah tidak masuk akal untuk benar-benar
‫memanggil pengontrol ulasan di rute tur, tetapi sekali
‫lagi, untuk saat ini, kita perlu melakukannya
‫seperti ini karena rute dimulai dengan tur.
‫Router inilah yang akan diaktifkan.
‫Di video berikutnya, kita akan
‫memperbaikinya, tapi untuk saat ini, kita
‫hanya ingin membuatnya bekerja
‫dan menjadi akrab dengan seluruh konsep rute bersarang ini.
‫Bagaimanapun, kami sekarang mendapatkan ID tur kami tepat di rute, tetapi tentu
‫saja, kami perlu
‫memberi tahu pengontrol bahwa itu sekarang harus menggunakan ID tur
‫ini dan juga ID pengguna yang saat ini masuk.
‫Kita sekarang perlu
‫melanjutkan dan memperbarui pengontrol ulasan kami
‫di sini di buat ulasan.
‫Apa yang akan kita lakukan adalah ini.
‫Kami akan mengatakan, jika tidak ada permintaan dot body dot tour,
‫jadi pada dasarnya jika kami tidak menentukan
‫ID tur dan body,
‫maka kami ingin mendefinisikannya sebagai yang
‫berasal dari URL.
‫Req dot body dot tour sama dengan
‫request, dan sekarang ingat bagaimana
‫parameter URL tersebut pada request dot params dan tentu
‫saja, nama parameter itu sendiri, jadi tour ID.
‫Ini adalah bagian pertama dan kedua,
‫kita juga perlu melakukan hal yang sama dengan pengguna.
‫Jika tidak ada request
‫dot user, atau sebenarnya request dot body dot
‫user, maka request dot body
‫dot user harus request dot user dot ID.
‫Dan sekali lagi, kami mendapatkan pengguna
‫titik permintaan dari middleware pelindung, dan hanya itu.
‫Mari kita beri komentar di sini, rute bersarang.
‫Dengan ini sebenarnya kita
‫buat agar user tetap bisa menentukan secara
‫manual tour dan user ID.
‫Apa yang kami
‫lakukan di sini hanyalah untuk mendefinisikannya ketika mereka
‫tidak ada atau ketika mereka tidak ditentukan dalam badan permintaan.
‫Ini seharusnya cukup bagi kita untuk mengujinya sekarang.
‫Baiklah, jadi mari kita
‫lihat pengguna yang kita dapatkan saat ini.
‫Kami memiliki dua pengguna
‫biasa ini, kami memiliki pengguna uji dan kami memiliki
‫Jonas di sini, tetapi kami lupa kata sandinya.
‫Mari kita lanjutkan dan hapus
‫pengguna ini dan buat yang baru.
‫Baiklah, jadi di Kompas, pengguna, dan ini
‫dia.
‫Mari kita buat ulang pengguna ini pada dasarnya.
‫Yang kita butuhkan hanyalah dua bagian data ini.
‫Sebenarnya itu mendaftar.
‫Nama yang sama, email
‫yang sama dan password yang sama juga.
‫Pada titik ini, kita sudah masuk sebagai
‫pengguna ini, yang disebut Jonas, mari kita ingat itu.
‫Selanjutnya, kita harus memilih tur mana yang
‫sebenarnya ingin kita buat ulasannya.
‫Mari kita lakukan lagi di sini di The
‫Forest Hiker sehingga kita mendapatkan banyak ulasan di tur yang sama.
‫Apa yang
‫akan kita lakukan sekarang adalah mengakses rute bersarang yang
‫baru saja kita buat.
‫Kami memiliki tur.
‫Sekarang kita perlu mendapatkan ID tur,
‫dan sekali lagi, kita akan
‫menggunakan yang
‫ini untuk The Forest Hiker, dan kemudian memotong ulasan, dan
‫kemudian mengingat sebuah posting.
‫Kemudian kita juga perlu menentukan otorisasi,
‫jadi pembawa token, dan sekarang di dalam tubuh, yang
‫kita butuhkan hanyalah
‫menentukan peringkat dan ulasan.
‫Peringkat adalah lima
‫dan kemudian beberapa teks di sini.
‫Jadi ini seharusnya sudah cukup untuk mencoba ini.
‫Ayo kirim.
‫Sekarang kami tidak memiliki izin untuk
‫melakukan tindakan ini, untuk beberapa alasan, jadi itu aneh.
‫Kami mendaftar sebagai Jonas ini, dan itu
‫sebenarnya hanya pengguna biasa
‫seperti yang seharusnya.
‫Mari kita lihat router kita.
‫Di sini, oh oke, itu pengguna, bukan pengguna.
‫Bug kecil seperti itu dapat, seperti yang Anda
‫lihat, merusak seluruh rute ini, jadi mari kita coba lagi sekarang.
‫Dan sekarang kami benar-benar mendapatkan ulasan akhir
‫dengan tur dan pengguna yang ditentukan dengan benar.
‫Setidaknya saya berharap begitu.
‫ID tur, Anda lihat, berakhir di sini pada 951, dan
‫jadi persis sama di sini.
‫Penggunanya adalah 1f3 ini, dan memang, ini adalah
‫yang sama persis.
‫Baiklah, jadi sekarang kita harus benar-benar
‫dapat mengonfirmasi itu, jadi tur get
‫ini sebenarnya sudah menjadi tur tempat kami
‫membuat ulasan baru.
‫Mari kita lihat, dan memang, sekarang
‫kita mendapatkan dua ulasan.
‫Ini adalah salah satu yang baru saja kita buat.
‫Itu ada di tur yang benar
‫dan tentu saja, juga pengguna yang benar dengan nama Jonas.
‫Luar biasa, itu benar-benar keren.
‫Mari kita lanjutkan dan simpan ini.
‫Saya akan membuat folder baru di sini lagi.
‫Aku akan menyebutnya tur slash review.
‫Sekarang di sini,
‫mari kita buat, buat ulasan baru tentang tur.
‫Itu seharusnya benar-benar di luar dan seperti ini.
‫Mari kita letakkan yang itu di sini.
‫Itu tidak benar-benar berfungsi sebagaimana mestinya karena suatu alasan.
‫Dan ini dia.
‫Baiklah, itu bekerja dengan baik,
‫tetapi seperti yang saya sebutkan sebelumnya,
‫implementasinya agak membingungkan pada saat ini.
‫Dan sekali lagi, itu karena kami secara teknis mendefinisikan
‫rute ulasan di router tur.
‫Itu agak membingungkan, jadi di video berikutnya,
‫kita akan memperbaikinya.