[go] Go 언어를 사용한 RESTful API의 요청 파라미터 처리

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("요청이 성공적으로 처리되었습니다."))
}

위의 예제에서는 클라이언트로부터 nameage라는 요청 파라미터를 받아서 해당 값을 변수에 저장하고 있습니다. 이후에는 이 값을 활용하여 요청 파라미터에 맞는 로직을 작성하고 응답을 반환할 수 있습니다.

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("요청이 성공적으로 처리되었습니다."))
}

위의 예제에서는 nameage라는 요청 파라미터가 필수로 전달되어야 합니다. 만약 그 중 하나라도 빠지게 된다면, 클라이언트에게 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("요청이 성공적으로 처리되었습니다."))
}

위의 예제에서는 nameage라는 요청 파라미터가 선택적으로 전달될 수 있습니다. 따라서 각각의 파라미터의 존재 여부를 검증하여 로직을 선택적으로 처리할 수 있습니다.

결론

Go 언어를 사용하여 RESTful API에서 요청 파라미터를 처리하는 방법을 살펴보았습니다. 기본적으로 http.Request 객체의 URL.Query() 메서드를 사용하여 요청 파라미터를 가져올 수 있으며, 필수 파라미터의 존재 여부를 검증하여 처리할 수도 있습니다. 선택적 파라미터의 경우에는 존재 여부를 검증하여 로직을 선택적으로 처리할 수 있습니다. 이를 통해 Go 언어로 작성한 RESTful API에서 유연하고 안정적으로 요청 파라미터를 처리할 수 있습니다.

참고 자료: