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 idtidak berguna karena saya tidak menggunakannya lagi. Klien mengajukan permintaan, uidjadi 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.