RESTFul API dengan Gin dan Gorm
Last updated
Was this helpful?
Last updated
Was this helpful?
Pada sesi ini kita akan membuat service API menggunakan sebagai HTTP Web Framework dan sebagai ORM library.
Gin dan Gorm adalah external package pada Go sehingga kita perlu melakukan instalasi:
dan
Untuk driver database disini kita akan menggunakan mysql
.
Kita akan melakukan setup dan koneksi ke database melalui Gorm. Silahkan membuat folder config
pada root direktori program Go yang sudah dibuat. Lalu di dalam folder config
buatlah sebiah file Go bernama database.go
yang sekaligus menjadi bagian dari package config
.
Kita akan mendeklarasikan variabel DB
yang merupakan pointer dari gorm.DB
.
Lalu kita akan membuat sebuah fungsi bernama ConnectDatabase
untuk membuat setup koneksi ke database driver yang kita gunakan. Lengkapnya kamu bisa cek pada dokumentasi Gorm.
Kita diminta memasukkan informasi database driver mysql
yang kita gunakan yaitu user
, password
, dan nama database dbname
.
Terakhir kita isi variabel DB
yang digunakan untuk melakukan koneksi ke database. Untuk kode lengkapnya bisa dilihat di bawah ini:
Kita telah membuat konfigurasi database, maka sekarang saatnya menghubungkan aplikasi Go kita dengan database. Buatlah file main.go
seperti biasa pada root direktori. Lalu kita panggil package gowebsiervice/config
yang telah kita buat sebelumnya:
Jika berhasil maka status koneksi akan menampilkan teks Connected to Database
:
Kita harus tahu aplikasi membutuhkan endpoint apa saja dari UI yang sudah disediakan. Namun pada kasus ini anggap saja kita membutuhkan endpoint data Students.
Kita akan membuat database bernama ptpgo
dan table bernama students
. Pada table kita akan mendaftarkan column id
, fullname
, age
, dan batch
.
Pada contoh ini kita akan menggunakan command line untuk memanipulasi data query SQL.
Untuk mengakses MySQL
, ketik perintah berikut ini:
Selanjutnya masukkan query berikut ini untuk membuat sebuah database bernama goschool
:
Kita juga harus memilih database yang ingin digunakan:
Selanjutnya kita akan membuat table dan column serta memasukkan beberapa data:
Kita akan membuat folder models
yang berisi tiap entity yang ada pada aplikasi Go sebagai representasi dari table yang ada. Pada kasus ini kita akan membuat file Go student.go
di dalam folder models
sehingga kita jadikan file tersebut sebagai package models
.
Pada file student.go
kita akan membuat sebuah struct
dari Student
sebagai representasi table yang ada pada database.
Kita membutuhkan Controller sebagai perantara antara client dan juga model. Controller nantinya akan berisi handler dari setiap endpoint.
Buatlah sebuah folder bernama controllers
yang didalamnya buatl juga sebuah file bernama student.go
. Kita akan membuat handler bernama GetStudents
untuk endpoint /students
yang nanti akan kita daftarkan. Handler ini berfungsi untuk menampilkan seluruh data pada table students
:
Selanjutnya kita akan menggunakan Gin kembali pada file main.go
untuk mendaftarkan endpoint yang akan kita gunakan. Kita akan membuat inisialisasi penggunaan Gin dengan variabel r
:
Lalu akan mendaftarkan Endpoint yang kita butuhkan yaitu method GET
dimana handler telah kita buat sebelumnya pada Controller:
Untuk menjalankan Gin kita perlu menambahkan statement:
Sehingga kode lengkapnya menjadi seperti berikut ini:
Kita akan menjalankan aplikasi seperti biasa yaitu go run main.go
:
Untuk menjalankan database SQL dengan driver , pastikan kamu telah menginstal MySQL pada local komputer. Setelah itu kita bisa mengakses MySQL melalui command line ataupu GUI seperti dan .
Kita akan melakukan testing endpoint menggunakan untuk memanggil endpoint yang telah kita daftarkan /students
yang memiliki method GET
: