Cara membuat Http Server di Golang part 3

Untuk mendapatkan akses database di server silahkan bisa dipelajari terlebih dahulu Aiven kemudian taruh data host,port,username,database, dan password.

  1. Pertama, konfigurasikan koneksi ke database dalam file db.go di dalam folder Config:

project-folder/src/Config/db.go:

package Config

import (
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/postgres"
)

var DB *gorm.DB

func InitDB() *gorm.DB {
	var err error
	DB, err = gorm.Open("postgres", "host=pg-20772f0a-laravel.aivencloud.com port=21980 user=avnadmin dbname=defaultdb password=AVNS_F21ay59vewp2Aprj_pT sslmode=require")
	if err != nil {
		panic("failed to connect database")
	}
	return DB
}
  1. Selanjutnya, buat model untuk produk di dalam folder Models:

project-folder/src/Models/products.go:

  1. Kemudian, buat file products.go di dalam folder Controllers untuk menangani operasi CRUD:

project-folder/src/Controllers/products.go:

Dalam contoh ini, kami menggunakan fungsi respondWithJSON dan respondWithError untuk mengirim tanggapan dalam format JSON. Metode CreateProduct, UpdateProduct, dan DeleteProduct menerima permintaan JSON dan mengembalikan respons JSON. GetAllProducts mengambil semua produk dari database dan mengembalikan dalam format JSON.

Pastikan Anda mengganti "id" dalam parameter URL dengan sesuatu yang sesuai dengan struktur URL Anda jika diperlukan. Sesuaikan juga rute dan logika operasi CRUD sesuai kebutuhan proyek Anda

memanggil InitDB di dalam fungsi main:

Dalam contoh di atas, InitDB dipanggil di dalam fungsi main sebelum server HTTP dimulai. Ini memastikan bahwa koneksi ke database dibuka saat aplikasi dimulai dan ditutup saat aplikasi berhenti. Penggunaan defer memastikan bahwa fungsi db.Close() akan dipanggil setelah fungsi main selesai dieksekusi.

Namun, dalam situasi yang lebih kompleks atau dalam aplikasi yang lebih besar, manajemen koneksi ke database dapat diintegrasikan dengan pola desain manajemen dependensi atau dalam kaitannya dengan kerangka kerja (framework) tertentu yang Anda gunakan. Sebaiknya pastikan untuk menutup koneksi ke database setelah selesai menggunakannya untuk menghindari kebocoran koneksi.

Last updated