GoDasturchi
HTTP GET Requests

HTTP GET Requests

HTTP GET so'rovlari

Bu darsdan boshlab siz net/http paketi bilan ishlaysiz — Go'ning veb-server va veb-klient yozish uchun standart vositasi. Muhim eslatma: bu darslar muhitida haqiqiy internetga chiqish yo'q, shuning uchun tashqi saytlarga so'rov yubormaymiz. Buning o'rniga net/http/httptest paketidan foydalanamiz — u haqiqiy tarmoqsiz, xotirada so'rov/javob almashinuvini simulyatsiya qiladi. Bu — haqiqiy Go loyihalarida ham HTTP handler'larni sinash uchun ishlatiladigan standart vosita.

example.go
func GreetHandler(w http.ResponseWriter, r *http.Request) {
    name := r.URL.Query().Get("name")
    fmt.Fprintf(w, "Salom, %s!", name)
}

req := httptest.NewRequest(http.MethodGet, "/greet?name=Malika", nil)
rec := httptest.NewRecorder()
GreetHandler(rec, req)

Handler funksiya — HTTP so'rovni qabul qiladigan funksiya, imzosi har doim bir xil: func(w http.ResponseWriter, r *http.Request). r.URL.Query().Get("name") so'rov satridagi (?name=Malika) parametrni oladi — bu YAML Data Pipeline kursidagi map'dan o'qish andazasiga o'xshaydi. httptest.NewRequest sinov uchun so'rov yaratadi, httptest.NewRecorder esa javobni "yozib oladigan" soxta ResponseWriter.

>_ Exercise

GreetHandler(w http.ResponseWriter, r *http.Request) funksiyasini yozing. U name so'rov parametrini o'qiydi (agar bo'sh bo'lsa, "Mehmon" ishlatilsin) va "Salom, <name>!" yozadi. mainda httptest.NewRequest/NewRecorder bilan /greet?name=Malika so'rovini yasab, natijani (status va tana) chop eting.

Stuck? Reveal a hint to help you.

Hints (0/4)

Key Takeaway

Key Takeaway:

HTTP handler — func(w http.ResponseWriter, r *http.Request) imzosiga ega funksiya. httptest.NewRequest va httptest.NewRecorder haqiqiy tarmoqsiz, to'liq HTTP so'rov/javob aylanishini sinash imkonini beradi — bu Go loyihalarida handler'larni sinashning standart usuli.

NEXT UP

HTTP POST and Custom Requests

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

HTTP GET Requests

HTTP GET so'rovlari

Bu darsdan boshlab siz net/http paketi bilan ishlaysiz — Go'ning veb-server va veb-klient yozish uchun standart vositasi. Muhim eslatma: bu darslar muhitida haqiqiy internetga chiqish yo'q, shuning uchun tashqi saytlarga so'rov yubormaymiz. Buning o'rniga net/http/httptest paketidan foydalanamiz — u haqiqiy tarmoqsiz, xotirada so'rov/javob almashinuvini simulyatsiya qiladi. Bu — haqiqiy Go loyihalarida ham HTTP handler'larni sinash uchun ishlatiladigan standart vosita.

example.go
func GreetHandler(w http.ResponseWriter, r *http.Request) {
    name := r.URL.Query().Get("name")
    fmt.Fprintf(w, "Salom, %s!", name)
}

req := httptest.NewRequest(http.MethodGet, "/greet?name=Malika", nil)
rec := httptest.NewRecorder()
GreetHandler(rec, req)

Handler funksiya — HTTP so'rovni qabul qiladigan funksiya, imzosi har doim bir xil: func(w http.ResponseWriter, r *http.Request). r.URL.Query().Get("name") so'rov satridagi (?name=Malika) parametrni oladi — bu YAML Data Pipeline kursidagi map'dan o'qish andazasiga o'xshaydi. httptest.NewRequest sinov uchun so'rov yaratadi, httptest.NewRecorder esa javobni "yozib oladigan" soxta ResponseWriter.

>_ Exercise

GreetHandler(w http.ResponseWriter, r *http.Request) funksiyasini yozing. U name so'rov parametrini o'qiydi (agar bo'sh bo'lsa, "Mehmon" ishlatilsin) va "Salom, <name>!" yozadi. mainda httptest.NewRequest/NewRecorder bilan /greet?name=Malika so'rovini yasab, natijani (status va tana) chop eting.

Stuck? Reveal a hint to help you.

Hints (0/4)

Key Takeaway

Key Takeaway:

HTTP handler — func(w http.ResponseWriter, r *http.Request) imzosiga ega funksiya. httptest.NewRequest va httptest.NewRecorder haqiqiy tarmoqsiz, to'liq HTTP so'rov/javob aylanishini sinash imkonini beradi — bu Go loyihalarida handler'larni sinashning standart usuli.

NEXT UP

HTTP POST and Custom Requests