#Golang
117 artikel
11 Tambah Unit Test Menggunakan Mockery
Pada tahapan ini kita akan membutuhkan dependency sebagai berikut
brew install mockery
go get github.com/stretchr/testify
go mod tidy
go mod vendor
go get github.com/DATA-DOG/go-sqlmock
Pada projek kali ini kita akan mencoba membuat unit test menggunakan library mocking dengan nama mockery
. Library ini banyak dipakai oleh kalangan developer golang karena kemudahan penggunaannya dan memiliki kelebihan fitur-fitur yang bisa mengcover semua unit test yang diperlukan. Jika teman-teman pernah menggunakan unit test pada golang mungkin sudah tahu library ini tetapi jika teman-teman ingin lebih mendapatkan referensi yang lebih banyak, Santekno juga telah memberikan postingan sebelumnya diantaranya:
10 Menambahkan Authentication Sederhana
Pada tahapan ini kita akan mencoba menambahkan Authentication sederhana dengan menggunakan middleware pada Golang. Perlu teman-teman ketahui bahwa middleware adalah proses mencegat suatu API yang mana sebelum service ketika diakses menuju ke dalam handler layer maka akan melewati middleware layer ini (yang akan kita buat) untuk menangkap dan memproses sesuatu untuk kebutuhan tertentu. Misalkan, pada kasus ini kita akan mencekat proses service untuk melihat apakah API tersebut memiliki header dengan ketentuan key X-API-Key
.
09 Membuat Konfigurasi HTTP Router, HTTP Server dan Koneksi Database
Pada tahapan ini kita akan membuat main
fungsi dari projek yang sudah kita buat. Pada fungsi main
kita akan menambahkan beberapa inisialisasi fungsi yang memang pada main fungsi itu digunakan untuk menginisialisasi semua resources
yang dibutuhkan oleh projek misalkan koneksi database, inisialisasi handler, usecase dan repository yang sebelumnya sudah kita buat.
08 Menambahkan Validator Request Menggunakan Golang Playground
Pada tahapan ini kita akan menambahkan validasi untuk setiap request yang dikirim ke dalam API. Misalkan pada request tambah, ubah dan hapus. Validasi yang kita gunakan adalah package github.com/go-playground/validator.
07 Membuat Handler Sebagai Data Delivery Layer
Pada tahapan ini kita akan melanjutkan projek yang sudah kita buat dengan membuat Delivery Layer. Layer ini seperti yang dijelaskan sebelumnya yaitu layer yang menghubungkan request user dengan logic layer.
06 Membuat Usecase Sebagai Data Logic
Pada kali ini, kita akan melanjutkan projek pembuatan RESTFul API menggunakan Golang ini dengan membuat fungsi Usecase. Sebelumnya pernah dibahas bahwa Usecase Layer ini akan berisikan data logic atau pengolahan data yang mana digunakan beberapa logic yang dibutuhkan dalam sebuah proses.
05 Membuat Repository Sebagai Data Akses
Pada kali ini kita akan membuat Article Repository yang kebutuhannya untuk komunikasi ke dalam database MySQL. Kita memiliki tabel pada MySQL pada sebelumnya sudah kita jelaskan, lalu kita akan membuat fungsi-fungsi yang nantinya akan digunakan untuk kebutuhan spesifikasi API. Berikut ini fungsi yang akan kita seperti ini
04 Menerapkan Clean Architecture pada Project
Pada tahapan ini kita akan mencoba menerapkan Clean Architecture yang mana konsep ini menurut Uncle Bob itu memiliki 4 layer yaitu
03 Membuat Database pada MySQL Golang
Pada tahap ini kita akan mencoba membuat database pada MySQL untuk persiapan membuat tabel-nya juga akan nantinya kita gunakan untuk membuat API dengan data yang ada pada database. Sebelumnya jika teman-teman belum punya MySQL pada komputer atau laptop maka persiapkan terlebih dahulu instal MySQL dan Database Editornya bisa menggunakan DBeaver, MySQL Workbench atau yang biasa teman-teman pakai untuk management database.
Membuat Generator Image Thumbnail Menggunakan Pipeline Pattern
Generate Image menggunakan Golang juga kita gunakan untuk mempermudah editor agar tidak perlu melakukan edit memakai aplikasi lain sehingga kita bisa mudah menaruh image yang diinginkan. Nah saat ini santekno akan coba membuat generator Image Thumbnail yang sudah ada pada tutorial ini. Misalkan kita ingin membuat thumbnail ini image-nya menjadi lebih ringkas daripada image yang aslinya. Maka kita perlu melakukan convert menjadi file yang lebih ringan dengan ukuran yang kecil. Bagaimana jika image tersebut banyak maka jika kita pakai seperti biasa Golang sequencial maka akan menjadi lama saat kita melakukan eksekusinya. Maka, kita akan coba bandingkan bagaimana proses generate image Thumbnail ini dengan golang yang sequencial dengan menggunakan concurrent Pipeline Patter.
Membuat Web Crawler menggunakan Golang
Web Crawler sering kita gunakan untuk mengambil sesuatu pada suatu website sehingga kita mendapatkan konten yang dibutuhkan. Hal ini biasanya digunakan untuk kebutuhan konten. Dalam hal ini kita akan coba menggunakan Golang untuk membuat Web Crawler sederhana dan akan mengambil beberapa konten seperti URL yang ada pada halaman suatu website tersebut.
02 Membuat API Specification menggunakan OpenAPI
Pada tahap ini kita akan mencoba membuat semua API Spesification yang berhubungan dengan API yang akan kita buat sehingga kita perlu dokumentasi yang lengkap dengan menggunakan OpenAPI. Jika teman-teman belum memasang OpenAPI di repositorynya maka coba baca terlebih dahulu artikel sebelumnya.