We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

HTTP Methods - GET

HTTP defines a set of methods. We must choose one to use each time we make an HTTP request. The most common ones include:

  • GET
  • POST
  • PUT
  • DELETE

The GET method is used to "get" a representation of a specified resource. It doesn't take (remove) the data from the server but rather gets a representation, or copy, of the resource in its current state. A GET request is considered a safe method to call multiple times because it shouldn't alter the state of the server.

Making a GET Request in Go

There are two basic ways to make a Get request in Go.

  1. The simple but less powerful way: http.Get
  2. The verbose but more powerful way: http.Client, http.NewRequest, and http.Client.Do

If all you need to do is make a simple GET request to a URL, http.Get will work:

resp, err := http.Get("https://jsonplaceholder.typicode.com/users")

If you need to customize things like headers, cookies, or timeouts, you'll want to create a custom http.Client, and http.NewRequest, then use the client's Do method to execute it.

client := &http.Client{
	Timeout: time.Second * 10,
}

req, err := http.NewRequest("GET", "https://jsonplaceholder.typicode.com/users", nil)
if err != nil {
	log.Fatal(err)
}

resp, err := client.Do(req)

Assignment

Complete the getUsers function. It should:

We've done this all before, but now you're writing it all from scratch!