backend (Go) 개발

http parseQuery

꼰대코더 2025. 3. 8. 01:29

Client

http://localhost:8080/person?first_name=GS&last_name=PAK

 

Server

※ r.URL.Query().Get("first_name")  보다 에러체크가 가능한 url.ParaseQuery를 사용

package main

import (
"fmt"
"log"
"net/http"
"net/url"
"os"
)

func parseQuery(w http.ResponseWriter, r *http.Request) {
params, err := url.ParseQuery(r.URL.RawQuery)
if err != nil {
log.Fatal(err)
}
first_name := params.Get("first_name")
last_name := params.Get("last_name")
fmt.Printf("Hi %s %s\n", first_name, last_name)

sisters := params["sisters"]
for _, sister := range sisters {
fmt.Printf("Hi %s\n", sister)
}

fmt.Fprintf(w, "OK")
}

func sayHello(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there!")
}

func setupHandler(mux *http.ServeMux) {
mux.HandleFunc("/", sayHello)
mux.HandleFunc("/person", parseQuery)
}

func main() {
listenAddr := os.Getenv("LISTEN_ADDR")
if len(listenAddr) == 0 {
listenAddr = ":8080"
}

mux := http.NewServeMux()
setupHandler(mux)
log.Fatal(http.ListenAndServe(listenAddr, mux))
}

'backend (Go) 개발' 카테고리의 다른 글

http fileupload  (0) 2025.03.08
http JSON  (0) 2025.03.08
Build HTTP Server  (0) 2025.03.05
환경설정  (0) 2025.03.04