DEV Community

Prashant Kumar
Prashant Kumar

Posted on

 

Consuming REST API in GO

Consuming REST API GO

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"])
}

Enter fullscreen mode Exit fullscreen mode

Hope this was insightful.

For more instant updates follow me on twitter

Top comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.