Hari 1: Ngebangun SecureBank API dari Nol
3 min read

Hari 1: Ngebangun SecureBank API dari Nol

Awal perjalanan 60 hari DevSecOps! Bikin REST API perbankan pakai Go dengan 3 endpoint, unit test, dan fondasi struktur proyek yang rapi.

devsecops
golang
securebank-api
60-days-challenge
backend
Share

Awal Mula Perjalanan 60 Hari DevSecOps

Hari pertama dari challenge 60 hari DevSecOps Mastery! Targetnya sederhana tapi penting: bikin fondasi proyek yang bakal dipakai terus sampe hari ke-60. Nama proyeknya SecureBank API — sebuah REST API perbankan yang bakal diamankan secara bertahap.

Bukan cuma nulis kode doang, hari ini fokusnya adalah ngeset semuanya dari awal biar rapi dan siap dikembangkan.

Apa yang Dibikin Hari Ini

Struktur Folder Go yang Bener

Bikin struktur folder proyek Go yang ngikutin standar:

  • cmd/api/ — tempat entry point dan handler API
  • internal/ — handler, middleware, model, repository, service
  • pkg/crypto/ — utility kriptografi (nanti dipakai di fase lanjutan)
  • configs/ — konfigurasi aplikasi
  • security/ — folder buat nyimpen threat model dan audit report

Struktur ini penting banget karena setiap fase challenge bakal nambah file di folder-folder ini. Jadi dari awal harus udah bener.

Tiga Endpoint API

SecureBank API punya 3 endpoint dasar:

  • GET /health — cek apakah APInya hidup
  • GET /balance?id=ACC001 — lihat saldo akun
  • POST /transfer — transfer duit antar akun

Semuanya pake data in-memory (map) dengan sync.RWMutex biar aman dari concurrent access. Belum pake database dulu — itu nanti di fase berikutnya.

Enam Unit Test

Bukan cuma bikin endpoint doang, tapi juga nulis test buat mastiin semuanya jalan bener:

  • TestHealthCheck — cek response 200 OK
  • TestGetBalanceFound — cek saldo akun yang ada
  • TestGetBalanceNotFound — cek akun yang ga ada return 404
  • TestTransferSuccess — transfer sukses return 200
  • TestTransferInsufficientBalance — saldo kurang return 400
  • TestTransferAccountNotFound — akun ga ada return 404

Hasilnya? 6 test, 6 PASS. Hijau semua.

Lesson Learned

1. Struktur folder itu investasi jangka panjang. Waktu ngebangun API sederhana rasanya mubazir bikin folder internal/handler, internal/service, dan seterusnya. Tapi karena proyek ini bakal dipakai 60 hari dan nambah kompleksitas terus, struktur yang rapi dari awal bakal ngehemat waktu di depan.

2. sync.RWMutex itu penting buat API yang handle concurrent request. Kalo ga dipake, race condition bisa bikin saldo akun ngaco — bayangin di aplikasi perbankan. Ini sesuatu yang sering lupain waktu pertama bikin API.

3. Nulis test dari hari pertama itu ngasih confidence. Bukan cuma ngeverifikasi kode yang sekarang, tapi juga ngeverifikasi kalau nanti ada perubahan — apakah yang udah jalan tetep jalan. Di hari-hari berikutnya waktu nambahin security scanning, bakal kebantu banget sama test ini.

Kesimpulan

Hari pertama ini fondasinya. Kayak bikin rumah — kalo fondasinya miring, di atasnya pasti bakal ribet. SecureBank API sekarang udah punya 3 endpoint yang fungsional, 6 unit test yang hijau, dan struktur folder yang siap dikembangkan selama 60 hari kedepan.

Besok lanjut ke Hari 2: bikin pipeline CI/CD pake GitHub Actions — biar setiap push ke repo otomatis di-build dan di-test. Ini baru awalnya, masih banyak yang bakal dipelajari!

Kodenya bisa dilihat di repo: github.com/stayrelevantid/chalange-devsecops

Enjoyed this article? Share it!

Share

Diskusi & Komentar

Artikel Terkait