4

しばらく前に、「バックボーン コレクション全体を保存するにはどうすればよいですか?」という質問をしました。. しかし、私が興味をそそられるのは、なぜ保存方法が提供されないのですか? コレクション全体を保存 (PUT/POST) するのは RESTful ではありませんか? それとも、REST ランドでそうするのは珍しいことですか?

GET:  /MySite/Collections - allowed by collection.fetch()
POST: /MySite/Collections - for the model(s) in the collection to be Posted when calling model.save()
PUT:  /MySite/Collections/{id} - for the model(s) to be updated individually
GET:  /MySite/Collections/{id} - to fetch an individual model throuth model.fetch()

では、リソースのコレクション全体に対して POST/PUT を許可しないのはなぜでしょうか? 便利な場合もありますが、一部のコードを使用してラップ/ハッキングできますがcollection.toJSON、それを含めないのはなぜですか? 私はその不在と同じ理由について興味があります。いくつかの機能を備えていないフレームワークは、通常、プログラミング/設計が悪いことを意味するため、除外されます。コレクション全体を保存するのは「悪い習慣」ですか?

4

1 に答える 1

3

REST に関するウィキペディアの記事では、 collection の CRUD 動詞について言及しています。

しかし、私の意見では、コレクションはリソースではなく、エンティティでもなく、状態もありません。代わりに、それはたくさんのリソースです。また、コレクションに対するUPDATEコマンドがある場合、それは複数のモデルに対する複数のUPDATEコマンドにほかなりません。1 つのリクエストで複数のUPDATEコマンドを実行できる可能性があると便利ですが、これは REST 実装の仕事ではないと思います。

また、あいまいさの問題もあります。たとえば、 idなどで既に保存されているモデルを含むコレクションや、そうでない他のコレクションでは、POSTコマンドは何を意味するのでしょうか?... またはUPDATEコマンドは何を意味するのでしょうか?...

サーバー側での複雑さの増加については話していません。この Collection REST サポートを標準のように使用する必要がある場合は、偶然を達成するために二重に作業する必要があります。

要約: Collection REST コマンドの必要性が、実際の、よりシンプルなモデルのみの REST コマンドで解決できないケースは見当たりません。そのため、物事をできるだけシンプルに保つことは良い習慣だと思います。

于 2012-08-05T20:49:35.350 に答える