API DOCUMENTATION - TheBabblingBrin/Chord-Cloud GitHub Wiki
chordCloud
API Documentation
USER AUTHENTICATION/AUTHORIZATION
All endpoints that require authentication
All endpoints that require a current user to be logged in.
- Request: endpoints that require authentication
- Error Response: Require authentication
-
Status Code: 401
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Authentication required", "statusCode": 401 }
-
All endpoints that require proper authorization
All endpoints that require authentication and the current user does not have the correct role(s) or permission(s).
- Request: endpoints that require proper authorization
- Error Response: Require proper authorization
-
Status Code: 403
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Forbidden", "statusCode": 403 }
-
Get the Current User
Returns the information about the current user that is logged in.
-
Require Authentication: true
-
Request
- Method: GET
- URL: /api/session
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "firstName": "John", "lastName": "Smith", "email": "[email protected]", "username": "JohnSmith" }
-
Log In a User
Logs in a current user with valid credentials and returns the current user's information.
-
Require Authentication: false
-
Request
-
Method: POST
-
URL: /api/session
-
Headers:
- Content-Type: application/json
-
Body:
{ "credential": "[email protected]", "password": "secret password" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "firstName": "John", "lastName": "Smith", "email": "[email protected]", "username": "JohnSmith", "token": "" }
-
-
Error Response: Invalid credentials
-
Status Code: 401
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Invalid credentials", "statusCode": 401 }
-
-
Error response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "credential": "Email or username is required", "password": "Password is required" } }
-
Sign Up a User
Creates a new user, logs them in as the current user, and returns the current user's information.
-
Require Authentication: false
-
Request
-
Method: POST
-
URL: /api/users
-
Headers:
- Content-Type: application/json
-
Body:
{ "firstName": "John", "lastName": "Smith", "username": "JohnSmith", "email": "[email protected]", "password": "secret password" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "firstName": "John", "lastName": "Smith", "username": "JohnSmith", "email": "[email protected]", "token": "" }
-
-
Error response: User already exists with the specified email
-
Status Code: 403
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "User already exists", "statusCode": 403, "errors": { "email": "User with that email already exists" } }
-
-
Error response: User already exists with the specified username
-
Status Code: 403
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "User already exists", "statusCode": 403, "errors": { "username": "User with that username already exists" } }
-
-
Error response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "email": "Invalid email", "username": "Username is required", "firstName": "First Name is required", "lastName": "Last Name is required" } }
-
SONGS
Get all Songs
Returns all the songs.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/songs
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Songs": [ { "id": 1, "userId": 1, "albumId": 1, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url", "User": { "id": 1, "username": "JohnSmith", "imageUrl": "image url" }, } ] }
-
Get all Songs created by the Current User
Returns all the songs created by the current user.
-
Require Authentication: true
-
Request
- Method: GET
- URL: /api/songs/current
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Songs": [ { "id": 1, "userId": 1, "albumId": 1, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
Get all Songs of an Artist(User) from an id
Returns all the songs created by the specified artist(user).
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/artists/:artistId/songs
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Songs": [ { "id": 1, "userId": 1, "albumId": 1, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
-
Error response: Couldn't find an Artist(User) with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Artist couldn't be found", "statusCode": 404 }
-
Get details of a Song from an id
Returns the details of a song specified by its id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/songs/:songId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "albumId": 1, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url", "User": { "id": 1, "username": "JohnSmith", "imageUrl": "image url" }, "Album": { "id": 1, "title": "Time", "imageUrl": "image url" } }
-
-
Error response: Couldn't find a Song with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Song couldn't be found", "statusCode": 404 }
-
Create a Song
Creates and returns a new song with or without an album.
-
Require Authentication: true
-
Request
-
Method: POST
-
URL: /api/songs
-
Headers:
- Content-Type: application/json
-
Body without an album:
{ "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "imageUrl": "image url", "albumId": null }
-
Body with an album:
{ "title": "Tomorrow", "description": "A song about the future.", "url": "audio url", "imageUrl": "image url", "albumId": 1 }
-
-
Successful Response
-
Status Code: 201
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "albumId": null, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "title": "Song title is required", "url": "Audio is required" } }
-
-
Error response: Couldn't find an Album with the specified albumId if albumId is not null
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Album couldn't be found", "statusCode": 404 }
-
Edit a Song
Updates and returns an existing song.
-
Require Authentication: true
-
Require proper authorization: Song must belong to the current user
-
Request
-
Method: PUT
-
URL: /api/songs/:songId
-
Headers:
- Content-Type: application/json
-
Body:
{ "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "imageUrl": "image url", "albumId": null }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "albumId": null, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-20 20:00:00", "imageUrl": "image url" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "title": "Song title is required", "url": "Audio is required" } }
-
-
Error response: Couldn't find a Song with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Song couldn't be found", "statusCode": 404 }
-
Delete a Song
Deletes an existing song.
-
Require Authentication: true
-
Require proper authorization: Song must belong to the current user
-
Request
- Method: DELETE
- URL: /api/songs/:songId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted", "statusCode": 200 }
-
-
Error response: Couldn't find a Song with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Song couldn't be found", "statusCode": 404 }
-
PLAYLISTS
Get all Playlists of an Artist(User) from an id
Returns all the playlists created by the specified artist(user).
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/artists/:artistId/playlists
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Playlists": [ { "id": 1, "userId": 1, "name": "Current Favorites", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
-
Error response: Couldn't find an Artist(User) with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Artist couldn't be found", "statusCode": 404 }
-
Create a Playlist
Creates and returns a new playlist.
-
Require Authentication: true
-
Request
-
Method: POST
-
URL: /api/playlists
-
Headers:
- Content-Type: application/json
-
Body:
{ "name": "Current Favorites", "imageUrl": "image url" }
-
-
Successful Response
-
Status Code: 201
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "name": "Current Favorites", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "name": "Playlist name is required" } }
-
Add a Song to a Playlist based on the Playlists's id
Add a song to a playlist specified by the playlist's id.
-
Require Authentication: true
-
Require proper authorization: Playlist must belong to the current user
-
Request
-
Method: POST
-
URL: /api/playlists/:playlistId/songs
-
Headers:
- Content-Type: application/json
-
Body:
{ "songId": 1 }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "playlistId": 1, "songId": 1 }
-
-
Error response: Couldn't find a Playlist with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Playlist couldn't be found", "statusCode": 404 }
-
-
Error response: Couldn't find a Song with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Song couldn't be found", "statusCode": 404 }
-
Get details of a Playlist from an id
Returns the details of a playlist specified by its id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/playlists/:playlistId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "name": "Current Favorites", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url", "Songs": [ { "id": 1, "userId": 1, "albumId": 1, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
-
Error response: Couldn't find a Playlist with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Playlist couldn't be found", "statusCode": 404 }
-
Edit a Playlist
Updates and returns an existing playlist.
-
Require Authentication: true
-
Require proper authorization: Playlist must belong to the current user
-
Request
-
Method: PUT
-
URL: /api/playlists/:playlistId
-
Headers:
- Content-Type: application/json
-
Body:
{ "name": "Current Favorites", "imageUrl": "image url" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "name": "Current Favorites", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-20 20:00:00", "imageUrl": "image url" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "name": "Playlist name is required" } }
-
-
Error response: Couldn't find a Playlist with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Playlist couldn't be found", "statusCode": 404 }
-
Delete a Playlist
Deletes an existing playlist.
-
Require Authentication: true
-
Require proper authorization: Playlist must belong to the current user
-
Request
- Method: DELETE
- URL: /api/playlists/:playlistId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted", "statusCode": 200 }
-
-
Error response: Couldn't find a Playlist with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Playlist couldn't be found", "statusCode": 404 }
-
Delete a Song From a Playlist
Deletes a song from an existing playlist.
-
Require Authentication: true
-
Require proper authorization: Playlist must belong to the current user
-
Request
- Method: DELETE
- URL: /api/playlists/:playlistId/songs/:songId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted", "statusCode": 200 }
-
-
Error response: Couldn't find a Playlist with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Playlist couldn't be found", "statusCode": 404 }
-
-
Error response: Couldn't find a Song with the specified id on the specified Playlist
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "The specified song was not on this playlist", "statusCode": 404 }
-
Get all Playlists created by the Current User
Returns all the playlists created by the current user.
-
Require Authentication: true
-
Request
- Method: GET
- URL: /api/playlists/current
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Playlists":[ { "id": 1, "userId": 1, "name": "Current Favorites", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
COMMENTS
Get all Comments by a Song's id
Returns all the comments that belong to a song specified by id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/songs/:songId/comments
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Comments": [ { "id": 1, "userId": 1, "songId": 1, "body": "I love this song!", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36" , "User": { "id": 1, "username": "JohnSmith" }, } ] }
-
-
Error response: Couldn't find a Song with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Song couldn't be found", "statusCode": 404 }
-
Create a Comment for a Song based on the Song's id
Create and return a new comment for a song specified by id.
-
Require Authentication: true
-
Request
-
Method: POST
-
URL: /api/songs/:songId/comments
-
Headers:
- Content-Type: application/json
-
Body:
{ "body": "I love this song!" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "songId": 1, "body": "I love this song!", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36" , }
-
-
Error Response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "body": "Comment body text is required" } }
-
-
Error response: Couldn't find a Song with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Song couldn't be found", "statusCode": 404 }
-
Edit a Comment
Update and return an existing comment.
-
Require Authentication: true
-
Require proper authorization: Comment must belong to the current user
-
Request
-
Method: PUT
-
URL: /api/comments/:commentId
-
Headers:
- Content-Type: application/json
-
Body:
{ "body": "I love this song!" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "songId": 1, "body": "I love this song!", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-20 20:00:00" }
-
-
Error Response: Body validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation error", "statusCode": 400, "errors": { "body": "Comment body text is required", } }
-
-
Error response: Couldn't find a Comment with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Comment couldn't be found", "statusCode": 404 }
-
Delete a Comment
Delete an existing comment.
-
Require Authentication: true
-
Require proper authorization: Comment must belong to the current user
-
Request
- Method: DELETE
- URL: /api/comments/:commentId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted", "statusCode": 200 }
-
-
Error response: Couldn't find a Comment with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Comment couldn't be found", "statusCode": 404 }
-
ALBUMS
Get all Albums
Returns all the Albums.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/albums
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Albums": [ { "id": 1, "userId": 1, "title": "Time", "description": "An album about time.", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
Get all Albums created by the Current User
Returns all the Albums created by the current user.
-
Require Authentication: true
-
Request
- Method: GET
- URL: /api/albums/current
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Albums":[ { "id": 1, "userId": 1, "title": "Time", "description": "An album about time.", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
Get all Albums of an Artist(User) from an id
Returns all the albums created by the specified artist(user).
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/artists/:artistId/albums
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Albums": [ { "id": 1, "userId": 1, "title": "Time", "description": "An album about time.", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
-
Error response: Couldn't find an Artist(User) with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Artist couldn't be found", "statusCode": 404 }
-
Get details of an Album from an id
Returns the details of an album specified by its id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/albums/:albumId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "title": "Time", "description": "An album about time.", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url", "User": { "id": 1, "username": "JohnSmith", "imageUrl": "image url" }, "Songs": [ { "id": 1, "userId": 1, "albumId": 1, "title": "Tomorrow", "description": "A song about the future.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" } ] }
-
-
Error response: Couldn't find an Album with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Album couldn't be found", "statusCode": 404 }
-
Create an Album
Creates and returns a new album.
-
Require Authentication: true
-
Request
-
Method: POST
-
URL: /api/albums
-
Headers:
- Content-Type: application/json
-
Body:
{ "title": "Time", "description": "An album about time.", "imageUrl": "image url" }
-
-
Successful Response
-
Status Code: 201
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "title": "Time", "description": "An album about time.", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "title": "Album title is required" } }
-
Edit an Album
Updates and returns an existing album.
-
Require Authentication: true
-
Require proper authorization: Album must belong to the current user
-
Request
-
Method: PUT
-
URL: /api/albums/:albumId
-
Headers:
- Content-Type: application/json
-
Body:
{ "title": "Time", "description": "An album about time.", "imageUrl": "image url" }
-
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "userId": 1, "title": "Time", "description": "An album about time.", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-20 20:00:00", "imageUrl": "image url" }
-
-
Error Response: Body validation error
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "title": "Album title is required" } }
-
-
Error response: Couldn't find an Album with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Album couldn't be found", "statusCode": 404 }
-
Delete an Album
Deletes an existing album.
-
Require Authentication: true
-
Require proper authorization: Album must belong to the current user
-
Request
- Method: DELETE
- URL: /api/albums/:albumId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Successfully deleted", "statusCode": 200 }
-
-
Error response: Couldn't find an Album with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Album couldn't be found", "statusCode": 404 }
-
ARTISTS(Users)
Get details of an Artist(User) from an id
Returns the details of an artist(user) specified by their id.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/artists/:artistId
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "id": 1, "username": "JohnSmith", "totalSongs": 10, "totalAlbums": 2, "imageUrl": "image url" }
-
-
Error response: Couldn't find an Artist(User) with the specified id
-
Status Code: 404
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Artist couldn't be found", "statusCode": 404 }
-
Add Query Filters to Get All Songs
Return songs filtered by query parameters.
-
Require Authentication: false
-
Request
- Method: GET
- URL: /api/songs
- Query Parameters
- page: integer, minimum: 1, maximum: 10, default: 1
- size: integer, minimum: 1, maximum: 20, default: 20
- title: string, optional
- createdAt: string, optional
- Body: none
-
Successful Response
-
Status Code: 200
-
Headers:
- Content-Type: application/json
-
Body:
{ "Songs":[ { "id": 1, "userId": 1, "albumId": 1, "title": "Yesterday", "description": "A song about the past.", "url": "audio url", "createdAt": "2021-11-19 20:39:36", "updatedAt": "2021-11-19 20:39:36", "imageUrl": "image url", "User": { "id": 1, "username": "JohnSmith", "imageUrl": "image url" }, } ], "page": 2, "size": 25 }
-
-
Error Response: Query parameter validation errors
-
Status Code: 400
-
Headers:
- Content-Type: application/json
-
Body:
{ "message": "Validation Error", "statusCode": 400, "errors": { "page": "Page must be greater than or equal to 1", "size": "Size must be greater than or equal to 1", "createdAt": "CreatedAt is invalid" } }
-