На основі того, що каже цей хлопець: http://toddfredrich.com/ids-in-rest-api.html
Припустимо, він має рацію щодо використання UUID для ідентифікації api-ресурсів. Тоді у мене виникають проблеми, намагаючись реалізувати це таким чином:
class FooEntity {
final String id = null; //auto-generated by my backend (mongodb), not shared
final UUID uid = UUID.randomUUID(); //the resource id
}
(Між клієнтом і сервером надсилаються та отримуються DTO, а не сутності бази даних.)
Проблема зараз полягає в тому, що id
це не корисно, оскільки я його більше не використовую. Клієнт робить запити, uid
тому чому я намагаюся обробляти 2 ідентифікатори? Тоді ми повернемося до того ж випуску початку. Якщо я встановив UUID в якості основного ключа ( _id
), я відкриваю ідентифікатор доповнення для загального користування.
Крім цього, є тема ефективності. Я читав, що індексування ObjectId набагато ефективніше, ніж UUID.