[go] Go 언어를 사용한 RESTful API의 데이터 삭제 방법

RESTful API는 클라이언트와 서버 간의 통신을 위한 표준 방법 중 하나입니다. Go 언어는 간결하고 효율적인 코드 작성을 도와주기 때문에 RESTful API를 개발하는 데 많이 사용됩니다. 이 글에서는 Go 언어를 사용하여 RESTful API에서 데이터를 삭제하는 방법에 대해 알아보겠습니다.

1. HTTP DELETE 메서드 사용하기

Go 언어의 net/http 패키지를 사용하여 HTTP DELETE 메서드를 처리하는 코드를 작성할 수 있습니다. 기본적으로 Go 언어는 HTTP 요청을 처리하기 위해 http.HandleFunc 함수를 사용합니다.

아래는 데이터를 삭제하는 DELETE 요청을 처리하는 예제 코드입니다.

package main

import (
	"fmt"
	"net/http"
)

func DeleteData(w http.ResponseWriter, r *http.Request) {
	// 삭제할 데이터의 ID 가져오기
	id := r.URL.Query().Get("id")

	// 데이터 삭제 로직 구현

	// 삭제 완료 메시지 응답하기
	fmt.Fprintf(w, "Data deleted successfully")
}

func main() {
	http.HandleFunc("/delete", DeleteData)

	// 서버 시작
	http.ListenAndServe(":8080", nil)
}

위의 코드에서 DeleteData 함수는 /delete 경로로 DELETE 요청이 오면 실행됩니다. 요청 URL에서 id 값을 가져와서 데이터를 삭제하는 로직을 구현하면 됩니다.

2. 데이터베이스 연동하기

실제로 데이터를 삭제하기 위해서는 데이터베이스와 연동하는 과정이 필요합니다. Go 언어에서는 database/sql 패키지를 사용하여 다양한 데이터베이스와 연동할 수 있습니다.

데이터베이스 연동을 위해 필요한 코드는 다음과 같습니다.

import (
	"database/sql"
	"fmt"

	_ "github.com/go-sql-driver/mysql"
)

func DeleteDataFromDB(id string) error {
	// 데이터베이스 연결
	db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database")
	if err != nil {
		return err
	}
	defer db.Close()

	// DELETE 쿼리 실행
	_, err = db.Exec("DELETE FROM tablename WHERE id=?", id)
	if err != nil {
		return err
	}

	return nil
}

위의 코드에서 DeleteDataFromDB 함수는 데이터베이스에서 데이터를 삭제하는 역할을 합니다. 연결할 데이터베이스 종류와 연결 정보를 설정한 후 db.Exec 함수를 사용하여 DELETE 쿼리를 실행합니다.

삭제 로직을 DeleteData 함수에 추가하여 DELETE 요청이 들어올 때 데이터를 삭제할 수 있도록 구현할 수 있습니다.

마무리

이번 글에서는 Go 언어를 사용하여 RESTful API의 데이터 삭제를 위한 방법을 알아보았습니다. HTTP DELETE 메서드를 사용하여 요청을 처리하고, 데이터베이스 연동을 통해 실제 데이터를 삭제하는 코드를 작성하는 방법을 살펴보았습니다. 이를 활용하여 Go 언어를 사용한 RESTful API 개발에 도움이 되었으면 좋겠습니다.