Basato su ciò che dice questo tizio: link
Supponiamo che abbia ragione sull'uso dell'UUID per identificare le risorse API. Poi mi imbatto in problemi cercando di implementarlo in questo modo, questo è:
class FooEntity {
final String id = null; //auto-generated by my backend (mongodb), not shared
final UUID uid = UUID.randomUUID(); //the resource id
}
(Tra client e server, vengono inviati e ricevuti DTO, non entità di base dati.)
Il problema ora è che id
non è utile in quanto non lo sto più utilizzando. Il client effettua le richieste con uid
, quindi perché devo preoccuparmi di gestire 2 ID?
Quindi torniamo allo stesso numero dell'inizio. Se imposto l'UUID come chiave primaria ( _id
), espongo l'ID back-end al pubblico.
Accanto a ciò, c'è l'argomento dell'efficienza. Ho letto che l'indicizzazione di ObjectId è molto più efficiente di UUID.