|
@@ -1,4 +1,4 @@
|
|
|
-# music-scanner
|
|
|
|
|
|
|
+# gmus-backend
|
|
|
|
|
|
|
|
This is the backend part of the music player, written in Golang.
|
|
This is the backend part of the music player, written in Golang.
|
|
|
|
|
|
|
@@ -36,6 +36,38 @@ After getting the [migrate CLI tool](https://github.com/golang-migrate/migrate/t
|
|
|
|
|
|
|
|
This is intended to be run as a scheduled job. It will scan a directory and add relevant metadata to a PostgreSQL database.
|
|
This is intended to be run as a scheduled job. It will scan a directory and add relevant metadata to a PostgreSQL database.
|
|
|
|
|
|
|
|
-**Usage**
|
|
|
|
|
|
|
+**Development usage**
|
|
|
|
|
|
|
|
-`bin/scan`
|
|
|
|
|
|
|
+`make run.scan`
|
|
|
|
|
+
|
|
|
|
|
+### REST/WebSocket API
|
|
|
|
|
+
|
|
|
|
|
+**Development usage**
|
|
|
|
|
+
|
|
|
|
|
+`make run.server`
|
|
|
|
|
+
|
|
|
|
|
+This is an HTTP server running the following endpoints:
|
|
|
|
|
+
|
|
|
|
|
+#### `GET /stream?songid=<id>`
|
|
|
|
|
+
|
|
|
|
|
+Streams an audio file based on the `songid` value in the query string.
|
|
|
|
|
+
|
|
|
|
|
+#### `GET /pubsub`
|
|
|
|
|
+
|
|
|
|
|
+Handles long-running client connections, initiating a websocket.
|
|
|
|
|
+
|
|
|
|
|
+#### `GET /artists`
|
|
|
|
|
+
|
|
|
|
|
+Fetches all artists, and outputs them in JSON format.
|
|
|
|
|
+
|
|
|
|
|
+#### `GET /albums?artist=<artist>`
|
|
|
|
|
+
|
|
|
|
|
+Fetches albums for a particular artist, and outputs them in JSON format.
|
|
|
|
|
+
|
|
|
|
|
+#### `GET /songs?artist=<artist>`
|
|
|
|
|
+
|
|
|
|
|
+Fetches songs for a particular artist, and outputs them in JSON format.
|
|
|
|
|
+
|
|
|
|
|
+#### `GET /song-info?id=<id>`
|
|
|
|
|
+
|
|
|
|
|
+Fetches info for a particular song, based on its ID, and outputs it in JSON format.
|