根据这个人说的话: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个id?然后我们回到开始的同一期。如果我将UUID设置为主键(_id
),那么我会将后端ID公开。
除此之外,还有效率主题。我已经读过,通过ObjectId进行索引比UUID效率更高。