Tutorial Restful API Golang #3 : Menampilkan Data dari Database


Tutorial Restful API Golang #3 : Menampilkan Data dari Database

Halo teman-teman semuanya, pada artikel sebelumnya kita telah belajar bagaimana cara melakukan installasi dan konfigurasi ORM Gorm pada project Go yang kita punya dan pada kesempatan kali ini kita semua akan belajar bagaimana cara menampilkan list data posts dari database dalam format JSON di Go.

Langkah 1 - Membuat Controller Post

Silahkan teman-teman buat folder baru dengan nama controllers dan di dalam folder tersebut silahkan buat file baru dengan nama postsController.go, kemudian masukkan kode berikut ini.

controllers/postController.go

package controllers

import (
	"santrikoding/backend-api/models"

	"github.com/gin-gonic/gin"
)

// get all posts
func FindPosts(c *gin.Context) {

	//get data from database using model
	var posts []models.Post
	models.DB.Find(&posts)

	//return json
	c.JSON(200, gin.H{
		"success": true,
		"message": "Lists Data Posts",
		"data":    posts,
	})
}

Dari penambahan kode di atas, pertama kita definisikan package yang kita gunakan adalah controllers.

package controllers

Kemudian kita import model yang ada di dalam project kita.

"santrikoding/backend-api/models"

Dan kita juga import web framework Gin.

"github.com/gin-gonic/gin"

Setelah itu, kita membuat function baru dengan nama FindPosts, dimana fungsi ini menerima sebuah context *gin.Context sebagai parameter.

// get all posts
func FindPosts(c *gin.Context) {

	//...
	
}

Di dalamnya, kita membuat variable posts yang nanati digunakan untuk menyimpan list data posts dari database.

var posts []models.Post

Selanjutnya, kita melakukan query ke database untuk mengambil semua data posts dan menyimpannya ke dalam variabel posts.

models.DB.Find(&posts)

Terakhir, kita tinggal mengembalikan ke dalam format JSON dengan status code 2002 dan berisi informasi tentang keberhasilan operasi, pesan, dan data posts yang telah diambil dari database.

//return json
c.JSON(200, gin.H{
    "success": true,
    "message": "Lists Data Posts",
    "data":    posts,
})

Langkah 2 - Membuat Route API Posts

Setelah berhasil membuat controller-nya, maka kita lanjutkan untuk membuatkan route-nya. Silahkan teman-teman buka file main.go, kemudian ubah semua kode-nya menjadi seperti berikut ini.

main.go

package main

import (
	"santrikoding/backend-api/controllers"
	"santrikoding/backend-api/models"

	"github.com/gin-gonic/gin"
)

func main() {
	//inisialiasai Gin
	router := gin.Default()

	//panggil koneksi database
	models.ConnectDatabase()

	//membuat route dengan method GET
	router.GET("/", func(c *gin.Context) {

		//return response JSON
		c.JSON(200, gin.H{
			"message": "Hello World!",
		})
	})

	//membuat route get all posts
	router.GET("/api/posts", controllers.FindPosts)

	//mulai server dengan port 3000
	router.Run(":3000")
}

Dari perubahan kode di atas, pertama kita import models dan controllers terlebih dahulu.

"santrikoding/backend-api/controllers"
"santrikoding/backend-api/models"

Dan di dalam function main, kita panggil fungsi ConnectDatabase yang sebelumnya kita buat di dalam models.

//panggil koneksi database
models.ConnectDatabase()

Dan kita menambahkan route baru untuk Rest API Posts Index.

//membuat route get all posts
router.GET("/api/posts", controllers.FindPosts)

Di atas, kita membuat route baru dengan method GET dan path yang digunakan adalah /api/posts dan jika route tersebut dieksekusi, maka akan memanggil controller dengan fungsi FindPosts.

Langkah 3 - Uji Coba Rest API

Silahkan restrat server Go-nya terlebih dahulu, yaitu dengan cara distop dan start lagi.

Untuk melakukan uji coba, kita akan menggunakan aplikasi yang bernama Postman, jadi silahkan teman-teman unduh melalui link berikut ini https://postman.com/downloads/

Silahkan teman-teman buka aplikasi Postman, kemudian masukkan URL berikut ini http://localhost:3000/api/posts dan untuk method-nya silahkan pilih GET.

Jika sudah, silahkan klik Send dan jika berhasil maka teman-teman akan mendapatkan response JSON yang kurang lebih seperti berikut ini.

{
    "data": [],
    "message": "Lists Data Posts",
    "success": true
}

Kesimpulan

Pada artikel kali ini, kita telah belajar bagaimana cara menampilkan list data posts dari database dalam format JSON di Go.

Dan pada artikel berikutnya, kita semua akan belajar bagaimana cara melakukan proses insert data ke dalam database di Go.

Terima Kasih



Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami