【发布时间】:2019-06-30 16:55:52
【问题描述】:
我正在编写一个 RESTful API。在大多数情况下,一切都很好,但在少数情况下,当我不处理资源时,事情开始崩溃。虽然有一百万种方法可以解决我面临的问题,但我正在寻找一些反馈,哪些是最理想的。
为简单起见,我们将 API 称为 timer。
- 一个用户一次只能有 1 个活跃的
timer。 - API 有 2 个功能端点
start和stop。 - 当用户
starts 计时器时,他们POST一些与timer相关的数据会创建一个新的timer,只要他们还没有运行timer。 - 在
timer上调用stop会更新timer以将其标记为非活动状态。
我目前的设置如下:
开始计时器:
POST /api/v1/timer
Body: [
'thing1' => 'something',
'thing2' => 'somethingelse
]
Response: 204
停止计时器:
PUT /api/v1/timer/stop
Body:
Response: 204
由于用户只能有 1 个 timer 处于活动状态,因此返回 timer id 似乎没有意义,就像在更传统的 CRUD 调用中那样。
我读过一些帖子,建议在 stop 调用上使用 POST 方法来触发停止,而不是 PUT。我想这也是有道理的......当你不处理传统资源时,这真的很糟糕。
当然,我也可以重写它以返回 timer 资源,但对我来说,这增加了客户端在想要停止(或删除)活动计时器时必须跟踪 timer id 的开销.
我们将不胜感激。
【问题讨论】:
标签: php laravel rest https crud