You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Yang pertama adalah lakukan install dependency management pada Golang.
Terdapat 2 dependency yang cukup terkenal, yang pertama adalah Go Module (gomod) merupakan official dependency management. Lalu yang lainnya adalah Godep (dep) yang masih dipakai oleh beberapa orang.
Selanjutnya adalah inisialisasi project. Jika kamu menggunakan dep, maka project anda harus anda simpan di dalam folder GOPATH.
$ cd$GOPATH/src
$ mkdir project_name
$ cd project_name
$ dep init
Nah jika menggunakan go module, kamu bisa buat project kamu dimana aja selama bukan di GOPATH.
$ cd to_any_where
$ mkdir project_name
$ cd project_name
$ go mod init project_modul_name
Selanjutnya buat sebuah model yang akan kita gunakan. Untuk modelnya, kita buat dipackage(folder) sehingga struktur foldernya akan terlihat seperti ini.
Nah untuk tahap ini kita akan membuat simple handler.
Untuk sementara, kita buat sebuah handler tanpa connect kedatabase. Jadi masih menggunakan data static.
Namun sebelumnya, karena untuk handlernya kita menggunakan library orang lain, untuk kasus ini kita menggunakan echo, mini framework.
Jika menggunakan go module
$ go get github.com/labstack/echo/v4
Jika menggunakan dep, gunakan versi yang belum menggunakan gomod.
$ dep ensure -add github.com/labstack/echo
Setelah dependencynya didownload, selanjutnya kita mengerjakan handler kita.
Untuk tahap ini, kita hanya akan membuat endpoint untuk Fetch Article. Untuk simple handlernya dapat dilihat berikut.
Step sebelumnya, kita sudah membuat satu endpoint API yang sudah berjalan untuk endpoint GET articles. Namun, data yang diserve masih data statis.
Agar bisa dinamis, tentunya kita harus menggunakan database yang akan menjadi sumber data kita.
Untuk dapat connect ke database, sama seperti bahasa programming lain, di Go juga harus menggunakan Driver. Kalau di Java mungkin JDBC atau sejenisnya.
Di Golang, kita menggunakan library open-source yang sudah dipercaya banyak orang(dan digunakan orang) yakni library: https://github.com/go-sql-driver/mysql
Inject Database Client ke Handler
Langkah pertama adalah, kita akan meng-inject database client ke struct handler kita sebelumnya.
Sekaligus tambahkan query untuk melakukan query dari database.
Sehingga, file rest.go akan terlihat sebagai berikut dibawah.
Mengacu pada REST, maka untuk CRUD aplikasi yang akan kita buat, masih kekurangan banyak fungsi yakni diantaranya:
POST /articles => Insert Article
GET /articles/:id => Get a single Article
DELETE /articles/:id => Delete a single Article
PUT /articles/:id => Update a single Article
Add Insert Handler
Nah berikutnya adalah, kita akan membuat endpoint untuk insert Article.
Karena structur kita sudah cukup jelas di tahap sebelumnya, kini kita hanya menambahi handler yang sesua dengan kebutuhan. Sehigga untuk kasus Insert article, code rest.go akan kita tambahi code berikut: