Sulla base di ciò che dice questo ragazzo: http://toddfredrich.com/ids-in-rest-api.html
Supponiamo che abbia ragione sull'UUID per identificare le risorse API. Quindi ho riscontrato problemi nel tentativo 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 database.)
Il problema ora è che id
non è utile in quanto non lo sto più usando. Il client effettua le richieste, uid
quindi perché mi preoccupo di gestire 2 ID? Quindi torniamo allo stesso numero dell'inizio. Se imposto UUID come chiave primaria ( _id
), espongo l'id back-end al pubblico.
Oltre a ciò, c'è l'argomento dell'efficienza. Ho letto che l'indicizzazione di ObjectId è molto più efficiente di UUID.