How to Extract URL Query Parameters in Go

Extracting query parameters from an URL is a common task when developing web services. For instance, to retrieve the id value from a request like:

curl "https://localhost:3000?id=abcdefghi"

You can use the following Go code:

package main

import (

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		id := r.URL.Query().Get("id")
		fmt.Println("id =>", id)
	http.ListenAndServe(":3000", nil)

This results in:

id => abcdefghi

To loop through all query parameters in a request, the following approach can be utilized:

values := r.URL.Query()
for k, v := range values {
	fmt.Println(k, " => ", v)

Thanks for reading, and happy coding!