RESTful API는 다양한 클라이언트로부터 요청을 받을 때 요청 파라미터를 처리해야 합니다. Go 언어를 사용하여 RESTful API에서 요청 파라미터를 처리하는 방법을 살펴보겠습니다.
1. 기본적인 요청 파라미터 처리
Go 언어에서는 net/http
패키지를 사용하여 HTTP 요청을 처리할 수 있습니다. 클라이언트로부터 전달된 요청 파라미터는 http.Request
객체의 URL.Query()
메서드를 사용하여 가져올 수 있습니다. 예를 들어, 다음과 같이 요청 파라미터를 처리할 수 있습니다.
package main
import (
"net/http"
"log"
)
func main() {
http.HandleFunc("/api", handleRequest)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func handleRequest(w http.ResponseWriter, r *http.Request) {
params := r.URL.Query()
name := params.Get("name")
age := params.Get("age")
// 요청 파라미터 처리 로직 작성
// 응답 작성
w.Write([]byte("요청이 성공적으로 처리되었습니다."))
}
위의 예제에서는 클라이언트로부터 name
과 age
라는 요청 파라미터를 받아서 해당 값을 변수에 저장하고 있습니다. 이후에는 이 값을 활용하여 요청 파라미터에 맞는 로직을 작성하고 응답을 반환할 수 있습니다.
2. 필수 요청 파라미터 검증
때로는 특정 요청 파라미터가 필수로 전달되어야 하는 경우가 있습니다. 이런 경우에는 요청 파라미터의 존재 여부를 검증해야 합니다.
func handleRequest(w http.ResponseWriter, r *http.Request) {
params := r.URL.Query()
name := params.Get("name")
age := params.Get("age")
// 필수 요청 파라미터 검증
if name == "" || age == "" {
http.Error(w, "name과 age는 필수 요청 파라미터입니다.", http.StatusBadRequest)
return
}
// 요청 파라미터 처리 로직 작성
// 응답 작성
w.Write([]byte("요청이 성공적으로 처리되었습니다."))
}
위의 예제에서는 name
과 age
라는 요청 파라미터가 필수로 전달되어야 합니다. 만약 그 중 하나라도 빠지게 된다면, 클라이언트에게 Bad Request(400)
응답을 보냅니다. 이 후에는 요청 파라미터를 처리하는 로직을 작성하고 응답을 반환할 수 있습니다.
3. 선택적 요청 파라미터 처리
때로는 특정 요청 파라미터가 선택적으로 전달될 수 있는 경우도 있습니다. 이런 경우에는 요청 파라미터의 존재 여부를 검증하여 선택적으로 처리할 수 있습니다.
func handleRequest(w http.ResponseWriter, r *http.Request) {
params := r.URL.Query()
name := params.Get("name")
age := params.Get("age")
// 선택적 요청 파라미터 처리
if name != "" {
// name 파라미터가 전달된 경우에 처리할 로직 작성
}
if age != "" {
// age 파라미터가 전달된 경우에 처리할 로직 작성
}
// 요청 파라미터 처리 로직 작성
// 응답 작성
w.Write([]byte("요청이 성공적으로 처리되었습니다."))
}
위의 예제에서는 name
과 age
라는 요청 파라미터가 선택적으로 전달될 수 있습니다. 따라서 각각의 파라미터의 존재 여부를 검증하여 로직을 선택적으로 처리할 수 있습니다.
결론
Go 언어를 사용하여 RESTful API에서 요청 파라미터를 처리하는 방법을 살펴보았습니다. 기본적으로 http.Request
객체의 URL.Query()
메서드를 사용하여 요청 파라미터를 가져올 수 있으며, 필수 파라미터의 존재 여부를 검증하여 처리할 수도 있습니다. 선택적 파라미터의 경우에는 존재 여부를 검증하여 로직을 선택적으로 처리할 수 있습니다. 이를 통해 Go 언어로 작성한 RESTful API에서 유연하고 안정적으로 요청 파라미터를 처리할 수 있습니다.
참고 자료: