Basierend auf dem, was dieser Typ sagt: http://toddfredrich.com/ids-in-rest-api.html
Nehmen wir an, er hat Recht damit, UUID zur Identifizierung der API-Ressourcen zu verwenden. Dann habe ich Probleme beim Versuch, es auf diese Weise zu implementieren. Dies ist:
class FooEntity {
final String id = null; //auto-generated by my backend (mongodb), not shared
final UUID uid = UUID.randomUUID(); //the resource id
}
(Zwischen Client und Server werden DTOs gesendet und empfangen, keine Datenbankentitäten.)
Das Problem ist jetzt, dass id
es nicht nützlich ist, da ich es nicht mehr benutze. Der Client stellt die Anfragen mit. uid
Warum kümmere ich mich dann um 2 IDs? Dann kehren wir zum gleichen Thema des Anfangs zurück. Wenn ich UUID als Primärschlüssel ( _id
) festlege, stelle ich die Backend-ID der Öffentlichkeit zur Verfügung.
Daneben gibt es das Thema Effizienz. Ich habe gelesen, dass die Indizierung mit ObjectId viel effizienter ist als die UUID.