Según lo que dice este tipo: http://toddfredrich.com/ids-in-rest-api.html
Supongamos que tiene razón sobre el uso de UUID para identificar los recursos de la API. Luego me encuentro con problemas tratando de implementarlo de esa manera, esto es:
class FooEntity {
final String id = null; //auto-generated by my backend (mongodb), not shared
final UUID uid = UUID.randomUUID(); //the resource id
}
(Entre el cliente y el servidor, se envían y reciben DTO, no entidades de base de datos).
El problema ahora es que id
no es útil ya que ya no lo estoy usando. El cliente realiza las solicitudes, uid
entonces, ¿por qué me molesto en manejar 2 ID? Luego volvemos al mismo tema del principio. Si configuro UUID como la clave principal ( _id
), entonces expongo el id del backend al público.
Además de eso, está el tema de la eficiencia. He leído que la indexación por ObjectId es mucho más eficiente que UUID.