0

MongoDB の ObjectID を使用して、RESTful 呼び出しでリソースを識別したいと考えています。ただし、PUT 呼び出しを適切に構成する方法がわかりません。

私が理解しているように、適切な PUT 呼び出しパスには、変更するリソースの ID を含める必要があります。その ID を持つリソースが存在する場合、それは変更されます。存在しない場合は作成されます。私が問題を抱えているのは後者のケースです。PUT リクエストを行うクライアントは、MongoDB が生成する ID を認識していないため、リクエストの一部として ID を使用できません。

自動生成されたキーをリソース ID として使用する場合、これはかなり一般的なシナリオだと思いますが、正しく処理する方法についての説明を見つけることができませんでした。ObjectID を使用するという考えを捨てて、ドキュメント内で他の値を使用することもできますが、コレクションの種類によってはうまくいきません。他の人はどのようにしていますか?

4

2 に答える 2

1

"if the resource doesn't exist it is created" is IMHO no must. This nice were the resource is identified by name instead of a id like amazon S3. So in your case PUT is only for modifying. For creating POST must be used.

于 2013-05-10T22:50:39.723 に答える
1

HTTP/1.1のRFCは、URI がそのように使用されるように定義されている場合、サーバーは新しいリソースを作成できると述べています。

したがって、コレクション URI への POST などによって新しいリソースを作成する場合、不明な ID を持つ PUT に対してエラー応答を返すことができます。

于 2013-05-10T23:08:40.417 に答える