ObjectId
を使用した ■RESTfulAPIの場合、最大の欠点は、クリーンなURLを使用するという点で非常にノイズが多いことです。 HEX番号のままにするか、非常に大きな整数に変換して、どちらもやや不親切なURLにします:
/rest/resource/52435dbecb970072ec3a780f
/rest/resource/25459211534898951476729247759
URLに「タイトル」を追加して(StackOverflowのように)、少しわかりやすくしました:
/rest/resource/52435dbecb970072ec3a780f/FriendlyResourceName
もちろん、「タイトル」はソフトウェアでは無視されますが、ユーザーにはそれが表示され、クレイジーなIDセグメントを精神的に無視できます。
インフラストラクチャを公開することでインフラストラクチャから学ぶことができる有用なものはほとんどありません:
- タイムスタンプ
- マシンID
- プロセスID
- ランダムな増分値
潜在的にマシンIDを収集する以外(通常、ObjectId
を作成するクライアントの数を示します s)、そこにはあまりありません。
ObjectId
はランダムではないため、セキュリティのために使用することはできません。常にデータを保護する必要があります。それらは明白な方法で増加しないかもしれませんが、力ずくで他のリソースを見つけるのは簡単でしょう。ただし、以前に自動インクリメントIDを使用していた場合、これは新しい問題ではありません。
常に多くの新しいドキュメントを作成していないことがわかっている場合は、ここのパターンの1つを使用して、より単純なIDを作成することをお勧めします。私が書いたあるアプリでは、URLに表示されるドキュメントIDの一部にauto-inc手法を使用し、AjaxのみのドキュメントIDにはObjectId
を使用しました。 s。いくつかのURLを簡単に「入力」できるようにしたかったのです。 ObjectId
の形式はありません エンドユーザーが簡単に入力できます。これは、MongoDBの長所の1つであり、任意の_id
を使用できます。 あなたが望むフォーマット。 :)