羽毛框架被設計爲堅持REST設計,我知道,但我認爲我有一個值得打破規則的邊緣案例。我想製作一個音樂播放器API,允許通過HTTP和Socket.io編程訪問播放器控件。羽毛定製服務方法 - 違反規則
球員,但是,並不是get
,put
,patch
,post
和delete
一個簡單的例子。一名球員將爲每個用戶創建,並且永遠不會被刪除,只會被更改。我想在方法的子路徑上使用自定義方法,例如播放,暫停,setQueue等,例如PATCH /player/play
和PATCH /player/pause
。
這正好是how Spotify does it in their API,它比每次向同一端點發送PATCH
請求和手動更新播放器數據更有意義。 PATCH /player {nowPlaying: {index: newIndex}}
跳到下一個軌道,其中API的用戶必須知道玩家數據的模式以及它如何操作。相反,像PATCH /player/next
這樣的東西更有意義並且更易於使用。
如何使用Feathers的API實現像這樣的服務,而不是手動全部手動執行?如果這是不可能的,那麼將自定義快速代碼與其他應用程序很好地整合在一起的最友好的方式是什麼?