我正在开发一个REST API,用于导航菜单项列表,几乎用于学习目的.在此之前,API中的所有内容都非常简单,因为我只需通过经典/collection/{id}内容修改单个项目.
但是现在我想改变存储在order我的数据库字段中的列表项的顺序,当然我不想为每个菜单项做一个请求.
那么这样做的合适方式/常见的最佳做法是什么?
我可以想象在发送的数据中使用id-order键值对发送PUT请求,/collection但是Laravel(我用来构建API)不允许这样做.我当然可以解决这个限制,但我想有明智的理由认为这是不允许的.
另一个想法是发送PUT请求以/collection/{ids}逗号分隔的ID列表,但为此我还必须发送ID及其订单值的键值列表,这看起来非常多余,因为这也有点脏.
那么实际上最好的方法是什么呢?
我建议您使用资源路径定义一条新路线:/collection/reorder。
POST这允许使用元素列表及其新位置的方法发送它。内容看起来像这样:
{
"element1": 4,
"element2": 1,
(...)
}
Run Code Online (Sandbox Code Playgroud)
“element1”是元素的标识符和相应的值,即它的新顺序。
您可以注意到,需要发送到此方法的数据格式可能取决于您在 UI 中用于重新排序列表的工具(例如,用于拖放)。
希望能帮助到你。蒂埃里
| 归档时间: |
|
| 查看次数: |
1338 次 |
| 最近记录: |