Dari Wikipedia: Uniform Resource Locator
Jalur , yang berisi data, biasanya disusun dalam bentuk hierarkis , yang muncul sebagai urutan segmen yang dipisahkan oleh garis miring.
Kueri opsional , dipisahkan dari bagian sebelumnya dengan tanda tanya (?), Yang berisi string kueri data non-hierarkis .
- Sesuai dengan desain konseptual URL, kami dapat mengimplementasikan PathParam untuk komponen hierarki data / arahan / pencari lokasi, atau mengimplementasikan QueryParam ketika data tidak hierarkis. Ini masuk akal karena jalur secara alami dipesan, sedangkan kueri berisi variabel yang dapat dipesan secara acak (pasangan variabel / nilai tidak teratur).
Seorang komentator sebelumnya menulis,
Saya pikir jika parameter mengidentifikasi entitas tertentu Anda harus menggunakan variabel path.
Yang lain menulis,
Gunakan @PathParam untuk pengambilan berdasarkan id. Pengguna @QueryParam untuk filter atau jika Anda memiliki daftar opsi tetap yang dapat dilewati pengguna.
Lain,
Saya akan merekomendasikan menempatkan parameter apa pun yang diperlukan di jalur, dan parameter opsional apa pun harus menjadi parameter string kueri.
- Namun, orang mungkin menerapkan sistem fleksibel, non-hierarkis untuk mengidentifikasi entitas tertentu! Seseorang mungkin memiliki beberapa indeks unik pada tabel SQL, dan memungkinkan entitas diidentifikasi menggunakan kombinasi bidang apa pun yang membentuk indeks unik! Kombinasi yang berbeda (mungkin juga dipesan secara berbeda), dapat digunakan untuk tautan dari berbagai entitas terkait (pengarah). Dalam kasus ini, kita mungkin berurusan dengan data non-hierarkis, yang digunakan untuk mengidentifikasi entitas individu - atau dalam kasus lain, mungkin hanya menentukan variabel / bidang tertentu - komponen indeks unik tertentu - dan mengambil daftar / set catatan. Dalam kasus seperti itu, mungkin lebih mudah, lebih logis dan masuk akal untuk mengimplementasikan URL sebagai QueryParams!
Bisakah string heksadesimal panjang mencairkan / mengurangi nilai kata kunci di sisa jalur? Mungkin ada baiknya mempertimbangkan implikasi SEO potensial dari menempatkan variabel / nilai di jalur, atau di kueri, dan implikasi antarmuka manusia dari apakah kita ingin pengguna dapat melintasi / menjelajahi hierarki URL dengan mengedit isi bilah alamat. Halaman 404 Tidak Ditemukan saya menggunakan variabel SSI untuk secara otomatis mengarahkan ulang URL yang rusak ke induknya! Robot pencarian juga dapat melintasi hierarki jalur. Di sisi lain, secara pribadi, ketika saya membagikan URL di media sosial, saya secara manual menghapus setiap pengidentifikasi unik pribadi - biasanya dengan memotong kueri dari URL, hanya menyisakan jalur: dalam hal ini, ada beberapa utilitas dalam menempatkan pengidentifikasi unik di jalur daripada di kueri. Apakah kita ingin memfasilitasi penggunaan komponen jalur sebagai antarmuka pengguna mentah, mungkin tergantung pada apakah data / komponen tersebut dapat dibaca oleh manusia atau tidak. Pertanyaan keterbacaan manusia agak berkaitan dengan pertanyaan tentang hierarki: sering, data yang dapat diekspresikan sebagai kata kunci yang dapat dibaca manusia juga bersifat hierarkis; sementara data hierarkis seringkali dinyatakan sebagai kata kunci yang dapat dibaca manusia. (Mesin pencari itu sendiri dapat didefinisikan sebagai memperbesar penggunaan URL sebagai antarmuka pengguna.) Hirarki kata kunci atau arahan mungkin tidak secara ketat dipesan, tetapi biasanya cukup dekat sehingga kita dapat membahas kasus-kasus alternatif di jalur, danberi label satu opsi sebagai kasus "kanonik" .
Pada dasarnya ada beberapa jenis pertanyaan yang dapat kami jawab dengan URL untuk setiap permintaan:
- Catatan / hal apa yang kita minta / layani?
- Yang mana yang kami minati?
- Bagaimana kita ingin menyajikan informasi / catatan?
Q1 hampir pasti paling baik dicakup oleh path, atau oleh PathParams. Q3 (yang mungkin dikendalikan melalui serangkaian parameter opsional yang dipesan secara acak dan nilai-nilai default); hampir pasti paling baik dicakup oleh QueryParams. T2: Tergantung ...