GithubHelp home page GithubHelp logo

byob's Introduction

BYOB - Build Your Own Backend

This API is intended for music enthusiast. Find artists and their albums. If you cannot find information on artists or albums, feel free to make a contribution to help us share information about music with the world.

API Endpoints

Purpose URL Verb Request Body Sample Success Response
Get All Artists /api/v1/artists GET none Sample Response
Get All Albums /api/v1/albums GET none Sample Response
Get specific artist by name /api/v1/artists/:artistName GET none { "id": 205, "id_artist": "111480", "artist_name": "Tool", "website": "www.toolband.com", "created_at": "2019-11-23T18:12:43.090Z", "updated_at": "2019-11-23T18:12:43.090Z", "artist_genre": "Progressive Metal", "biography": "Tool is an American rock band from Los Angeles, California. Formed in 1990, the group's line-up has included drummer Danny Carey, guitarist Adam Jones, and vocalist Maynard James Keenan. Since 1995, Justin Chancellor has been the band's bassist, replacing their original bassist Paul D'Amour. Tool has won three Grammy Awards, performed worldwide tours, and produced albums topping the charts in several countries. The band emerged with a heavy metal sound on their first studio album Undertow in 1993, and later became a dominant act in the alternative metal movement with the release of their second effort, Ænima, in 1996. Their efforts to unify musical experimentation, visual arts, and a message of personal evolution continued with Lateralus (2001) and the most recent album 10,000 Days (2006), gaining the band critical acclaim and commercial success around the world.\nDue to Tool's incorporation of visual arts and relatively long and complex releases, the band is generally described as a style-transcending act and part of progressive rock and art rock. The relationship between the band and today's music industry is ambivalent, at times marked by censorship and the band members' insistence on privacy." }
Get specific album by name /api/v1/albums/:albumName GET none { "id": 8, "id_artist": "111480", "album_name": "Fear Inoculum", "year_released": 2019, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.801Z", "updated_at": "2019-11-23T18:12:43.801Z" }
Get artist's entire album information /api/v1/albums/artist/:artistName GET none [ { "id": 1, "id_artist": "111480", "album_name": "Lateralus", "year_released": 2001, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.709Z", "updated_at": "2019-11-23T18:12:43.709Z" }, { "id": 2, "id_artist": "111480", "album_name": "Undertow", "year_released": 1993, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.743Z", "updated_at": "2019-11-23T18:12:43.743Z" }, { "id": 3, "id_artist": "111480", "album_name": "10,000 Days", "year_released": 2006, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.745Z", "updated_at": "2019-11-23T18:12:43.745Z" }, { "id": 4, "id_artist": "111480", "album_name": "Ænima", "year_released": 1996, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.745Z", "updated_at": "2019-11-23T18:12:43.745Z" }, { "id": 5, "id_artist": "111480", "album_name": "Opiate", "year_released": 1992, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.754Z", "updated_at": "2019-11-23T18:12:43.754Z" }, { "id": 6, "id_artist": "111480", "album_name": "Salival", "year_released": 2000, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.768Z", "updated_at": "2019-11-23T18:12:43.768Z" }, { "id": 7, "id_artist": "111480", "album_name": "72826", "year_released": 1991, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.773Z", "updated_at": "2019-11-23T18:12:43.773Z" }, { "id": 8, "id_artist": "111480", "album_name": "Fear Inoculum", "year_released": 2019, "album_artist": "Tool", "album_genre": "Progressive Metal", "created_at": "2019-11-23T18:12:43.801Z", "updated_at": "2019-11-23T18:12:43.801Z" } ]
Post an artist /api/v1/artists POST Requires: { idArtist: (empty String) artistName: (String), artistGenre: (String), website:(String), bigraphy: (String) } Sample Response
Post an album /api/v1/albums POST Requires: { idArtist: (empty String) albumName: (String), Year Released : (String or Integer), albumArtist :(String), albumGenre: (String) } Sample Response
Delete an artist and their albums /api/v1/artist/:artistName DELETE none Sample Response

byob's People

Contributors

dawnlunacy avatar

Stargazers

Roman avatar

Watchers

James Cloos avatar  avatar

byob's Issues

BUG in POST Methods:

  • Getting error msg 42703 'Undefined Column' from server
  • This is happening in both post methods

In the Data: idArtist property that is used is not necessary and should be replaced with the id for just the database.

  • idArtist is currently used in the seed file artists_albums to connect the table.
  • idArtist (debatable on worth keeping at all) should represent the id of the database. As it is now, it is repetitive and the numbers in the data that seeds the database do not correlate.
  • Use the property of artistName on artists and albumArtist on albums to link the two tables.
  • reseed database and ensure data is still persisting in database

4 GET Endpoints

  • 1. A user should be able to fetch all artist info in database

  • api/v1/artists/:artistName

  • (ALL)

  • 2. A user should be able to fetch all album info

  • api/v1/album/:albumName

  • (ALL)

  • 3. A user should be able to fetch an artist info by name:

  • api/v1/artists/:artistName

  • This will give back only the artist info (not their album list)

  • (SPECIFIC RESOURCE)

  • 4. A user should be able to fetch an an album by name

  • api/v1/album/:albumName

  • This will give the user that singular album information

  • (SPECIFIC RESOURCE)

  • 5. EXTRA A user should be able to fetch only albums related to a specific artist

  • api/v1/albums/artist/:artistName

  • This will give back the albums by the specific artist queried for
    -(SPECIFIC RESOURCE)

- Articulation Requirement:

  • : On a branch go through the server.js file and be sure to leave a comment on each line explaining demonstrating you understand what is happening on each line

- 2 POST Endpoints

  • A user should be able to post a new artist:
    api/v1/artist/new/:artist

  • A user should be able to post albums for an artist without an albums list
    api/v1/artist/albums/:albums

- ReadME:

  • : In depth descriptions of API Endpoints
  • : Include what parameters can be used in certain requests (e.g. For a POST request, what should be put in the request body?)
  • : Sample responses from endpoints (What does the response object look like for a request?)

**Cards**

Cards can be added to your board to track the progress of issues and pull requests. You can also add note cards, like this one!

BUG in DELETE Method

  • When delete request is made, a successful response message can be replied,
  • but data still persist on next fetch call and in data base

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.