Feathers 框架旨在坚持 REST 设计,我知道,但我认为我有一个值得打破规则的边缘案例。我想制作一个音乐播放器 API,允许通过 HTTP 和 Socket.io 以编程方式访问播放器控件。
然而,播放器不是get
, put
, patch
,post
和的简单情况delete
。将为每个用户创建一个播放器,并且永远不会被删除,只会更改。我想要在方法的子路由上使用自定义方法,例如 play、pause、setQueue 等,例如PATCH /player/play
和PATCH /player/pause
.
这正是Spotify 在他们的 API 中的做法,它比PATCH
每次向同一个端点发送请求并手动更新玩家数据更有意义,即。PATCH /player {nowPlaying: {index: newIndex}}
跳到下一个曲目,API 的用户必须知道播放器数据的架构及其操作方式。相反,类似的东西PATCH /player/next
更有意义并且更易于使用。
如何使用 Feathers 的 API 实现这样的服务,而无需在 express 中手动完成?如果不可能,将自定义快递代码与应用程序的其余部分很好地集成的最友好的方法是什么?