Tutorial Golang REST API + MySQL — Part 2
Tutorial belajar REST API Golang + MySQL (CREATE UPDATE DELETE)
Tutorial Golang REST API + MySQL — Part 2
Tutorial belajar REST API Golang + MySQL (CREATE UPDATE DELETE)
Hello gengs, pada tutorial kali ini gue akan ngajarin gimana caranya melakukan CREATE, UPDATE, dan DELETE. Di tutorial ini gue anggep lo udah paham istilah CRUD dan gue gak perlu lagi jelasin apa itu CRUD.
Oke langsung aja, berlanjut dari tutorial kemarin (Bagi yang belum baca silahkan coba disini). Sekarang gue akan menjelaskan lanjutannya.
File yang digunakan masih data.go, sekarang kita akan menambahkan fungsi Create. Cuss codenya dibawah
//code lanjutan dari tutorial part 1func insertUsersMultipart(w http.ResponseWriter, r *http.Request) { var users Users var arr_user []Users var response Response db := connect() defer db.Close() err := r.ParseMultipartForm(4096) if err != nil { panic(err) } first_name := r.FormValue(“first_name”) last_name := r.FormValue(“last_name”) _, err = db.Exec(“INSERT INTO person (first_name, last_name) values (?,?)”, first_name, last_name, ) if err != nil { log.Print(err) } response.Status = 1 response.Message = “Success Add” log.Print(“Insert data to database”) w.Header().Set(“Content-Type”, “application/json”) json.NewEncoder(w).Encode(response)}Oke sedikit yang mau gue jelaskan disini, disini kita akan menggunakan tipe Post dengan Form-data. Selain Form-data, lo juga bisa menggunakan x-www-form-urlencoded dan juga JSON Raw. Kenapa Form-data? Karena gue pengennya pake itu aja hahaha gaada alasan spesifik. Tapi kalo lo pengen pake x-www-form-urlencoded, caranya gampang.
func insertUsers(w http.ResponseWriter, r *http.Request) { err := r.ParseForm() if err != nil { panic(err) } first_name := r.Form.Get(“first_name”) last_name := r.Form.Get(“last_name”) //continue…}tinggal ganti dengan ParseForm dan method untuk ambil get parameternya diikutin aja.
Jangan lupa tambahin satu baris di main.go
router.HandleFunc(“/users”, insertUsersMultipart).Methods(“POST”)Sekarang lo bisa coba dengan cara build projeknya terlebih dahulu dan berikut adalah hasilnya.

Oke untuk Update dan Delete-nya lo bisa coba lewat code ini.
func updateUsersMultipart(w http.ResponseWriter, r *http.Request) { db := connect() defer db.Close() err := r.ParseMultipartForm(4096) if err != nil { panic(err) } id := r.FormValue(“user_id”) first_name := r.FormValue(“first_name”) last_name := r.FormValue(“last_name”) _, err = db.Exec(“UPDATE person set first_name = ?, last_name = ? where id = ?”, first_name, last_name, id, ) if err != nil { log.Print(err) } response.Status = 1 response.Message = “Success Update Data” log.Print(“Update data to database”) w.Header().Set(“Content-Type”, “application/json”) json.NewEncoder(w).Encode(response)}func deleteUsersMultipart(w http.ResponseWriter, r *http.Request) { db := connect() defer db.Close() err := r.ParseMultipartForm(4096) if err != nil { panic(err) } id := r.FormValue(“user_id”) _, err = db.Exec(“DELETE from person where id = ?”, id, ) if err != nil { log.Print(err) } response.Status = 1 response.Message = “Success Delete Data” log.Print(“Delete data to database”) w.Header().Set(“Content-Type”, “application/json”) json.NewEncoder(w).Encode(response)}Basic code nya masih sama, namun bedanya ada ID aja sekarang.
Jangan lupa tambahin routes dibawah di data.go
router.HandleFunc(“/users”,updateUsersMultipart).Methods(“PUT”)router.HandleFunc(“/users”,deleteUsersMultipart).Methods(“DELETE”)Langsung aja yuk nyoba



Oke sampe situ aja yang bisa gue kasih, semoga tutorial Golang REST API + MySQL ini bisa bermanfaat bagi elo selaku reader, dan gue selaku writer ya ^^
Happy coding!
Artikel ini merupakan konten legacy dari blog Medium (Tahun 2018). Beberapa konsep atau sintaks mungkin sudah mengalami perubahan pada versi terbaru.