rest - 以RESTful方式重新排序商品

标签 rest

我有一个包含以下数据的表:

id position name
== ======== =========
1     4      Fred
2     2      Wilma
3     1      Pebbles
4     5      Barney
5     3      Betty

这是供用户重新排列的列表(因此在位置列中)。我的问题是,我怎样才能轻松地做到这一点。例如,如果我想将Fred移到位置2,我将如何发送请求?

目前,我有这样的事情:
PUT /user/1/reorder/2

这会将当前位于位置4的用户1(Fred)移至位置2。SQL代码还将运行查询,该查询将更改其他用户的位置以适应Fred的新位置。

正确的RESTful方法是什么?

最佳答案

为了有效地执行此操作,请使用哈希表,并且从不对所有内容进行重新排序,只需通过更改索引键将它们置于两者之间。我什么意思

可以说

1 a
2 b
3 c
4 d
5 e

PUT /user/1/reorder/2

在内部,位置也会从索引中的位置导出
1  2   b
2  2.5 a
3  3   c
4  4   d
5  5 e

正如Kajow所指出的,这种方法有两个问题:
  • 多次重新排序后,浮点数可能不足以满足
  • 浮点数精度

  • 要解决它们:
  • 我们不使用浮点数,而是使用大数100000、200000、300000等,然后重新排序200000、250000、30000等。
  • x的重新订购数量后,我们重置为100000,200000,300000,400000。可能有一种方法可以使每个x分区仅对小零件重新排序,以保持此过程简单,小​​巧和零星
  • 关于rest - 以RESTful方式重新排序商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54682775/

    相关文章:

    java - 无法使用休息服务

    javascript - 如何使用 mongoose 在 Postman 中实现查询参数

    javascript - 如何在 SailsJS REST 蓝图之后运行回调函数?

    c# - 如何正确发送PATCH请求

    spring-boot - 对Kotlin原语的Spring验证

    rest - 跨 REST 微服务的事务?

    javascript - 在react中设置动态输入字段的状态

    java - 尽管 jar 位于类路径中,但由于缺少类而引发异常,REST - JERSEY

    .net - 编写基于 .NET 的 RESTful API 的最佳实践

    java - Spring MVC PATCH方法: partial updates