RESTFul API dengan Gin dan Gorm
Pada sesi ini kita akan membuat service API menggunakan Gin sebagai HTTP Web Framework dan Gorm sebagai ORM library.
Instalasi Gin dan Gorm
Gin dan Gorm adalah external package pada Go sehingga kita perlu melakukan instalasi:
dan
Untuk driver database disini kita akan menggunakan mysql
.
Setup Database
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:
Koneksi ke Database
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
:
Membuat entity pada 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
.
Untuk menjalankan database SQL dengan driver MySQL, pastikan kamu telah menginstal MySQL pada local komputer. Setelah itu kita bisa mengakses MySQL melalui command line ataupu GUI seperti Dbeaver dan Sequel Pro.
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:
Membuat Model
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.
Membuat Controller
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
:
Setup Gin
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:
Menjalankan aplikasi dan testing endpoint
Kita akan menjalankan aplikasi seperti biasa yaitu go run main.go
:
Kita akan melakukan testing endpoint menggunakan Postman untuk memanggil endpoint yang telah kita daftarkan /students
yang memiliki method GET
:
Last updated