Berdasarkan apa yang dikatakan orang ini: http://toddfredrich.com/ids-in-rest-api.html
Anggaplah dia benar tentang menggunakan UUID untuk mengidentifikasi sumber api. Lalu saya mengalami kesulitan mencoba menerapkannya seperti ini, ini adalah:
class FooEntity {
final String id = null; //auto-generated by my backend (mongodb), not shared
final UUID uid = UUID.randomUUID(); //the resource id
}
(Antara klien dan server, dikirim dan diterima DTO, bukan entitas basis data.)
Masalahnya sekarang adalah itu id
tidak berguna karena saya tidak menggunakannya lagi. Klien mengajukan permintaan, uid
jadi mengapa saya repot-repot menangani 2 id? Kemudian kita kembali ke masalah yang sama di awal. Jika saya menetapkan UUID sebagai kunci utama ( _id
) maka saya mengekspos backend id kepada publik.
Selain itu, ada topik efisiensi. Saya telah membaca bahwa pengindeksan oleh ObjectId jauh lebih efisien daripada UUID.