Dựa trên những gì anh chàng này nói: http://toddfredrich.com/ids-in-rest-api.html
Giả sử anh ta đúng về việc sử dụng UUID để xác định tài nguyên api. Sau đó, tôi gặp rắc rối khi cố gắng thực hiện theo cách đó, đây là:
class FooEntity {
final String id = null; //auto-generated by my backend (mongodb), not shared
final UUID uid = UUID.randomUUID(); //the resource id
}
(Giữa máy khách và máy chủ, được gửi và nhận DTO, không phải các thực thể cơ sở dữ liệu.)
Vấn đề bây giờ là nó id
không hữu ích vì tôi không sử dụng nó nữa. Khách hàng thực hiện các yêu cầu, uid
vậy tại sao tôi lại phải xử lý 2 id? Sau đó, chúng tôi trở lại cùng một vấn đề của sự khởi đầu. Nếu tôi đặt UUID làm khóa chính ( _id
) thì tôi sẽ hiển thị id phụ trợ cho công chúng.
Bên cạnh đó là chủ đề hiệu quả. Tôi đã đọc rằng lập chỉ mục bởi ObjectId hiệu quả hơn nhiều so với UUID.