Membuat Rest API CRUD sederhana menggunakan Golang


Mini Project kali ini kita akan membuat sebuah Rest API CRUD sederhana menggunakan bahasa pemrograman Golang untuk proses developmentnya. Selain itu kita juga akan mengimplementasikan Clean Code pada proses development ini.

Structure Pemrograman Golang

Pada project Rest API CRUD Golang ini kita akan menyusun project structure golang kita menjadi :

  • Model
  • Repository
  • Usecases
  • Controller
  • Configs
  • Utils

Penjelasan mengenai struktur projek

Model

Model akan kita gunakan untuk mendeklarasikan struktur table pada database, yang mana akan berperan sebagai struktur pada json array di Rest Api

Repository

Pada direktori repository kita akan menaruh kumpulan kode yang berhubungan dengan database. Seperti kode yang berguna untuk eksekusi query dan lain sebagainya.

Usecases

Di sisi Usecases kita akan mengimplementasikan bussiness proses pada program, misal : perhitungan bunga, pajak, dan lain sebagainya. Namun, pada projek kita kali ini, akan digunakan sebagai validation.

Controllers

Sama seperti bahasa pemrograman lain, Controller akan kita gunakan untuk menaruh konfigurasi API endpoint pada Rest Api.

Configs

Configs digunakan sebagai tempat menaruh konfigurasi program, seperti environtment, konfigurasi router, database dan sebagainya.

Utils

Utils kita gunakan sebagi tempat untuk menaruh utility yang digunakan semasa proses development, contohnya Viper sebagai program untuk mengambil konfigurasi dari file config, validation dan lain sebagainya.

Struktur Folder pada Project

folder struktur projek Rest API CRUD Golang
folder struktur golang

Teknologi yang digunakan

Pada projek ini kita menggunakan beberapa dependency guna mendukung proses development, diantaranya adalah :

  • Viper : digunakan untuk membaca file environtment
  • gorillamux : digunakan untuk membuat variable pada parameter endpoint
  • mysql : digunakan untuk membuat koneksi dan mengakses database

File Project Rest API CRUD

File Project ini dapat kamu clone dari laman github inact25 pada repository Golang-Basic-CRUD  . Selamat mempelajarinya.

Karena keterbatasan waktu, kami tidak akan menjelaskan secara line per line karena kode yang tidak sedikit dan tidak mungkin juga kita akan menjelaskan satu per satu. Jadi, jika kamu menemui kendala atau bingung dengan kode yang telah di susun, kamu dapat mengajukan pertanyaan di kolom komentar.

Ingin mempelajari lebih dalam mengenai Golang ?, yuk kunjungi halaman berikut : Golang Fundamental.

Sampai jumpa di mini projek selanjutnya gaes, Salam koding.