この男が言うことに基づいて: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よりもはるかに効率的であると読みました。