Consuming REST API is really simple in GO. The net/http comes with GO standard modules, which we are going to use in this article.
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
func getMovieDetails(movieName string) map[string]interface{} {
// response is going to be stored in this variable
var movieDetailResponse map[string]interface{}
// url to be fetched, replace the apiikey with your own
url := "http://www.omdbapi.com/?t=" + movieName + "&apikey=your_key"
// create a new http request
res, err := http.Get(url)
// check for errors
if err != nil {
log.Fatal(err)
}
// close the response body when function returns
defer res.Body.Close()
// read the response body
body, err := ioutil.ReadAll(res.Body)
if err != nil {
log.Fatal(err)
}
// unmarshal the json response
// the body is in []byte format, so we need to convert it to json
// we can use json.Unmarshal(body, &movieDetailResponse) to unmarshal byte array to json
if err := json.Unmarshal(body, &movieDetailResponse); err != nil {
log.Fatal(err)
}
// return the movie details
return movieDetailResponse
}
func main() {
movieName := "k.g.f chapter 2"
movieDetail := getMovieDetails(movieName)
// print the movie details
fmt.Println("Title", movieDetail["Title"])
fmt.Println("Genre", movieDetail["Genre"])
fmt.Println("Plot", movieDetail["Plot"])
}
Hope this was insightful.
For more instant updates follow me on twitter
Top comments (0)