깃털 프레임 워크는 REST 디자인에 충실하도록 설계되었지만 규칙을 약간 위반할만한 가치가 있다고 생각합니다. HTTP 및 Socket.io를 통해 플레이어 컨트롤에 프로그래밍 방식으로 액세스 할 수있는 뮤직 플레이어 API를 만들고 싶습니다.깃털 사용자 지정 서비스 메서드 - 규칙에 대한 설명
플레이어 그러나 get
, put
, patch
, post
및 delete
간단한 아니다. 한 명의 플레이어가 모든 사용자에 대해 생성되며 삭제되지 않으며 변경 만됩니다. 메서드의 서브 루틴 (예 : PATCH /player/play
및 PATCH /player/pause
)에 play, pause, setQueue 등과 같은 사용자 지정 메서드가 필요합니다.
이것은 정확히 how Spotify does it in their API이며 매번 PATCH
요청을 동일한 끝점에 보내고 플레이어 데이터를 수동으로 업데이트하는 것보다 훨씬 의미가 있습니다. PATCH /player {nowPlaying: {index: newIndex}}
을 사용하여 다음 트랙으로 건너 뜁니다. 여기서 API 사용자는 플레이어 데이터의 스키마와 작동 방식을 알아야합니다. 대신 PATCH /player/next
과 같은 것이 훨씬 더 이해하기 쉽고 사용하기 쉽습니다.
Express에서 수동으로 모두 수행하지 않고 Feathers API를 사용하여 이와 같은 서비스를 어떻게 구현합니까? 가능하지 않은 경우 맞춤 표현 코드를 나머지 앱과 잘 통합 할 수있는 가장 친숙한 방법은 무엇입니까? 스포티 파이는 그런 식으로 할 것 같지만