The URL query map lets code add or replace request parameters deterministically.

query string Query strings add small key-value choices to the end of a request URL.

Query Parameters

item
query_parameters.go
Replay: real traced execution (multi-file project)
package main

import "fmt"

func main() {
	var item = "book"
	baseURL := "https://api.example.test/search"
	rawQuery := "item=" + item + "&limit=3"
	fullURL := baseURL + "?" + rawQuery

	fmt.Println("item=", item)
	fmt.Println("rawQuery=", rawQuery)
	fmt.Println("fullURL=", fullURL)
}
package main

import "fmt"

func main() {
	var item = "pen"
	baseURL := "https://api.example.test/search"
	rawQuery := "item=" + item + "&limit=3"
	fullURL := baseURL + "?" + rawQuery

	fmt.Println("item=", item)
	fmt.Println("rawQuery=", rawQuery)
	fmt.Println("fullURL=", fullURL)
}
package main

import "fmt"

func main() {
	var item = "mug"
	baseURL := "https://api.example.test/search"
	rawQuery := "item=" + item + "&limit=3"
	fullURL := baseURL + "?" + rawQuery

	fmt.Println("item=", item)
	fmt.Println("rawQuery=", rawQuery)
	fmt.Println("fullURL=", fullURL)
}
  1. item ← "book", baseURL ← "https://api.example.test/search", rawQuery ← "item=book&limit=3"

    5func main() {6  var item→ "book" = "book" //@item="pen", "mug"7  baseURL→ "https://api.example.test/search" := "https://api.example.test/search"8  rawQuery→ "item=book&limit=3" := "item=" + item"book" + "&limit=3"9  fullURL→ "https://api.example.test/search?item=book&limit=3" := baseURL"https://api.example.test/search" + "?" + rawQuery"item=book&limit=3"1011  fmt.Println("item=", item"book")12  fmt.Println("rawQuery=", rawQuery"item=book&limit=3")13  fmt.Println("fullURL=", fullURL"https://api.example.test/search?item=book&limit=3")14}
    outputitem= book
    rawQuery= item=book&limit=3
    fullURL= https://api.example.test/search?item=book&limit=3
  1. item ← "pen", baseURL ← "https://api.example.test/search", rawQuery ← "item=pen&limit=3"

    5func main() {6  var item→ "pen" = "pen"7  baseURL→ "https://api.example.test/search" := "https://api.example.test/search"8  rawQuery→ "item=pen&limit=3" := "item=" + item"pen" + "&limit=3"9  fullURL→ "https://api.example.test/search?item=pen&limit=3" := baseURL"https://api.example.test/search" + "?" + rawQuery"item=pen&limit=3"1011  fmt.Println("item=", item"pen")12  fmt.Println("rawQuery=", rawQuery"item=pen&limit=3")13  fmt.Println("fullURL=", fullURL"https://api.example.test/search?item=pen&limit=3")14}
    outputitem= pen
    rawQuery= item=pen&limit=3
    fullURL= https://api.example.test/search?item=pen&limit=3
  1. item ← "mug", baseURL ← "https://api.example.test/search", rawQuery ← "item=mug&limit=3"

    5func main() {6  var item→ "mug" = "mug"7  baseURL→ "https://api.example.test/search" := "https://api.example.test/search"8  rawQuery→ "item=mug&limit=3" := "item=" + item"mug" + "&limit=3"9  fullURL→ "https://api.example.test/search?item=mug&limit=3" := baseURL"https://api.example.test/search" + "?" + rawQuery"item=mug&limit=3"1011  fmt.Println("item=", item"mug")12  fmt.Println("rawQuery=", rawQuery"item=mug&limit=3")13  fmt.Println("fullURL=", fullURL"https://api.example.test/search?item=mug&limit=3")14}
    outputitem= mug
    rawQuery= item=mug&limit=3
    fullURL= https://api.example.test/search?item=mug&limit=3