GoDasturchi
Query Parameters and Forms

Query Parameters and Forms

So'rov parametrlari va formalar

URL manzilidan keyingi ?nomi=qiymat&boshqa=qiymat2 qismi — "query parametrlari" deyiladi (masalan qidiruv, filtr, sahifalash uchun ishlatiladi).

example.go
package main

import (
	"fmt"
	"net/http"
	"net/http/httptest"
)

func searchHandler(w http.ResponseWriter, r *http.Request) {
	query := r.URL.Query().Get("q")
	limit := r.URL.Query().Get("limit")
	fmt.Fprintf(w, "qidiruv: %s, limit: %s", query, limit)
}

func main() {
	req := httptest.NewRequest("GET", "/search?q=golang&limit=10", nil)
	rec := httptest.NewRecorder()
	searchHandler(rec, req)
	fmt.Println(rec.Body.String())
}

r.URL.Query() barcha query parametrlarini xarita (map) ko'rinishida qaytaradi, .Get(kalit) esa bittasini oladi (bo'lmasa bo'sh matn qaytaradi, xato chiqmaydi). Forma orqali yuborilgan ma'lumot (application/x-www-form-urlencoded) uchun esa r.FormValue(kalit) ishlatiladi — u ham query, ham forma tanasidan qidiradi.

>_ Exercise

Sahifalash parametrlarini o'qiydigan handler yozing.

  • "page" va "size" query parametrlarini o'qing
  • "sahifa: <page>, o'lcham: <size>" ko'rinishida javob bering

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

r.URL.Query().Get(kalit) — URL'dagi ?kalit=qiymat ko'rinishidagi parametrlarni o'qishning standart usuli.

NEXT UP

HTTP Capstone: Mini REST API

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Query Parameters and Forms

So'rov parametrlari va formalar

URL manzilidan keyingi ?nomi=qiymat&boshqa=qiymat2 qismi — "query parametrlari" deyiladi (masalan qidiruv, filtr, sahifalash uchun ishlatiladi).

example.go
package main

import (
	"fmt"
	"net/http"
	"net/http/httptest"
)

func searchHandler(w http.ResponseWriter, r *http.Request) {
	query := r.URL.Query().Get("q")
	limit := r.URL.Query().Get("limit")
	fmt.Fprintf(w, "qidiruv: %s, limit: %s", query, limit)
}

func main() {
	req := httptest.NewRequest("GET", "/search?q=golang&limit=10", nil)
	rec := httptest.NewRecorder()
	searchHandler(rec, req)
	fmt.Println(rec.Body.String())
}

r.URL.Query() barcha query parametrlarini xarita (map) ko'rinishida qaytaradi, .Get(kalit) esa bittasini oladi (bo'lmasa bo'sh matn qaytaradi, xato chiqmaydi). Forma orqali yuborilgan ma'lumot (application/x-www-form-urlencoded) uchun esa r.FormValue(kalit) ishlatiladi — u ham query, ham forma tanasidan qidiradi.

>_ Exercise

Sahifalash parametrlarini o'qiydigan handler yozing.

  • "page" va "size" query parametrlarini o'qing
  • "sahifa: <page>, o'lcham: <size>" ko'rinishida javob bering

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

r.URL.Query().Get(kalit) — URL'dagi ?kalit=qiymat ko'rinishidagi parametrlarni o'qishning standart usuli.

NEXT UP

HTTP Capstone: Mini REST API