// package main // import ( // "errors" // "net/http" // "github.com/gin-gonic/gin" // ) // type media struct { // ID string `json: "id"` // Url string `json: "url"` // Title string `json: "title"` // Author string `json: "author"` // } // var songs = []media{ // {ID: "1", Url: "https://www.youtube.com/watch?v=DmeUuoxyt_E", Title: "Rockstars", Author: "Nickelback"}, // {ID: "2", Url: "https://www.youtube.com/watch?v=u9Dg-g7t2l4", Title: "The Sound Of Silence", Author: "Disturbed"}, // {ID: "3", Url: "https://www.youtube.com/watch?v=uxUATkpMQ8A", Title: "Gives You Hell", Author: "The All-American Rejects"}, // } // func getMedia(c *gin.Context) { // c.IndentedJSON(http.StatusOK, songs) // } // func songByid(c *gin.Context) { // id := c.Param("id") // song, err := getMediaByid(id) // if err != nil { // c.IndentedJSON(http.StatusNotFound, gin.H{"message": "Book not found."}) // return // } // c.IndentedJSON(http.StatusOK, song) // } // func getMediaByid(id string) (*media, error) { // for i, song := range songs { // if song.ID == id { // return &songs[i], nil // } // } // return nil, errors.New("id not found") // } // func addMedia(c *gin.Context) { // var newSong media // if err := c.BindJSON(&newSong); err != nil { // return // } // songs = append(songs, newSong) // c.IndentedJSON(http.StatusCreated, newSong) // } // func main() { // router := gin.Default() // router.GET("/songs", getMedia) // router.GET("/songs/:id", songByid) // router.POST("/songs", addMedia) // router.Run("127.0.0.1:8000") // }