私はモンゴイドを使った簡単なレールアプリを持っています。私はembeds_many/embedded_inを介していくつかの子ドキュメントを埋め込む親ドキュメントを持っています。ユーザーは、埋め込みドキュメントの順序を変更することができます(上に移動、下に移動、上に移動...)。可能な場合、既存のRails機能を使用してRESTfulな方法でそれをどのように設計するのだろうか。私はもちろん、子どものIDを取得して移動させるコントローラアクションを作成することができます。しかし、私はそれがRESTの考えではないと思います。 RESTの観点からは、要素を保持するコンテナの更新でなければなりません。しかし、私はどのように実装するか考えていない/それを設計!ヒントや出発点は?コレクションをRESTfulな方法で並べ替えること
1
A
答えて
0
通常は、PUTを使用して既存のリソースを更新する必要があります。この場合、コレクションのメンバーの序数を更新しているので、更新するだけです。問題は、コリジョンを回避し、順序が明確であることを保証するために、コレクション内のすべてのメンバーの序数を更新する必要があることです。だから、あなたが「最上部に移動」などのアクションの各メンバーを更新することができます
# routes.rb
resources :items do
put '/sort' => 'items#sort', :on => :collection
end
# items_controller.rb
def sort
# update your ordinals however you need
end
...完全にコレクションを更新したいが、それはインターフェースがすべての順序を指定するために、ほとんどの場合、より簡単になる傾向があります各更新要求の要素。つまり、フロントエンド/ apiユーザーは、すべての要素IDをパラメータとして指定する順序でPUT /items/sort
に指定します。
0
多くの場合、RESTの定義済み動詞に完全にマッピングされない要件がありますが、RESTの精神を守っている限り、大丈夫です。
たとえば、既存のアイテムの位置を調整するアクションは、カスタム動詞を含むPUTリクエストです。あなたが好む方法に応じて、単一の動詞position
または複数の動詞up
とdown
を定義することができます。この場合、position
は、top
,bottom
,up
またはdown
のいずれかを実装することができます。カスタムルートを追加
は非常に簡単です:これは、それに応じてItemsController#position
に新しい動詞position
とルートを作成します
resources :items, :member => { :position => :put }
。
関連する問題
- 1. Riakでデータを並べ替え/並べ替える方法は?
- 2. 一般的なペアのコレクションを並べ替える方法
- 3. コレクションのカスタム並べ替え
- 4. Javaでコレクションを並べ替える
- 5. 日付フィールドでコレクションを並べ替える方法は?
- 6. Magento:商品コレクションを並べ替える
- 7. 並べ替えで並べ替え
- 8. DataGrid列を並べ替える方法
- 9. Magentoカテゴリトップメニューを並べ替える方法
- 10. 並べ替えの方法配列インデックスで並べ替えられたリスト
- 11. Plone 4コレクションをカスタマイズして複数のフィールドで並べ替える方法
- 12. PostgreSQLクエリで異なるタプルを並べ替える方法
- 13. UITableView並べ替えのような並べ替え
- 14. SQLを並べ替えることなく複数のデータ行を並べ替える
- 15. C++で別のベクトルと並べ替えてベクトルを並べ替える
- 16. ソート可能なデータテーブルでJSFラベルを並べ替える方法
- 17. 検索と並べ替えの際に使用するコレクション
- 18. Vimで数字とリテラルの列を並べ替える方法
- 19. ASPxPivotGridカスタム並べ替え/並べ替えを削除する
- 20. C#で、関連する項目のコレクションを並べ替え
- 21. ダイナミックステートメントの構築中にエンティティフレームワークで子コレクションを並べ替える
- 22. Laravelでマージされたコレクションを並べ替える
- 23. 配列の順番でコレクションを並べ替える
- 24. VBAでオブジェクトのコレクションを並べ替える
- 25. C++、stl、キーではなく値で並べ替える方法
- 26. 配列の並べ替え方法
- 27. リストボックス内のコレクションを流体的に並べ替える方法は?
- 28. Spark DataFrame group降順で並べ替えて並べ替え
- 29. post_views_count関数を使用して投稿を並べ替える方法(ビューで並べ替える)?
- 30. カスタムオーダーで並べ替える