[go] Go 언어를 사용한 RESTful API의 요청/응답 포맷 처리

Go 언어는 간단하고 효율적인 RESTful API를 개발하는 데 매우 적합한 언어입니다. RESTful API에서 요청과 응답의 포맷을 처리하는 방법에 대해 알아보겠습니다.

요청 포맷 처리

Go 언어에서 RESTful API의 요청을 처리하기 위해 net/http 패키지를 사용할 수 있습니다. 이 패키지는 http.Request 구조체를 제공하여 요청의 헤더, 바디, 쿼리 파라미터 등을 쉽게 접근할 수 있습니다.

// 예시 코드
func handler(w http.ResponseWriter, r *http.Request) {
    // 헤더 접근 예시
    contentType := r.Header.Get("Content-Type")

    // 바디 접근 예시
    body, err := ioutil.ReadAll(r.Body)
    if err != nil {
        // 에러 처리
    }

    // 쿼리 파라미터 접근 예시
    query := r.URL.Query().Get("key")

    // 요청 처리 로직 구현

    // 응답 전송 예시
    w.WriteHeader(http.StatusOK)
    w.Write([]byte("Hello, World!"))
}

위의 코드에서 http.Request 구조체의 Header, Body, URL 메소드를 사용하여 요청의 헤더, 바디, 쿼리 파라미터를 접근하고 처리할 수 있습니다.

응답 포맷 처리

Go 언어에서 RESTful API의 응답을 처리하기 위해 net/http 패키지의 ResponseWriter 인터페이스를 사용할 수 있습니다. 이 인터페이스를 사용하여 응답의 상태 코드, 헤더, 바디 등을 설정할 수 있습니다.

// 예시 코드
func handler(w http.ResponseWriter, r *http.Request) {
    // 응답 상태 코드 설정 예시
    w.WriteHeader(http.StatusOK)

    // 응답 헤더 설정 예시
    w.Header().Set("Content-Type", "application/json")

    // 응답 바디 작성 예시
    w.Write([]byte(`{"message": "Hello, World!"}`))
}

위의 코드에서 ResponseWriter 인터페이스의 WriteHeader, Header, Write 메소드를 사용하여 응답의 상태 코드, 헤더, 바디를 설정하고 작성할 수 있습니다.

요약

Go 언어를 사용하여 RESTful API의 요청과 응답 포맷을 처리하는 방법에 대해 알아보았습니다. net/http 패키지의 http.Request 구조체와 ResponseWriter 인터페이스를 사용하여 간단하고 효율적으로 요청과 응답을 처리할 수 있습니다.

더 자세한 내용은 Go 언어 공식 문서를 참고하시기 바랍니다.