31/05/2026
Backend yang rapi itu bukan cuma soal aplikasinya jalan, tapi juga soal mudah dikembangkan, mudah dibaca, dan mudah di-maintain.
Kalau project FastAPI mulai membesar, struktur folder yang asal-asalan bisa bikin codebase cepat berantakan.
Contoh pembagian folder backend FastAPI:
1. main.py
Entry point aplikasi FastAPI. Biasanya dipakai untuk inisialisasi app, register router, middleware, dan event startup.
2. api/endpoints
Tempat menyimpan route API. Endpoint bisa dipisah berdasarkan fitur agar URL dan handler lebih terstruktur.
3. core
Berisi konfigurasi inti seperti settings, security, auth helper, constants, logging, dan dependency global.
4. db
Untuk koneksi database, session, base model, dan helper transaksi atau query.
5. models
Berisi struktur tabel ORM seperti SQLAlchemy, termasuk relasi antar tabel dan mapping database.
6. schemas
Berisi schema Pydantic untuk validasi request, response, serializer, dan contract API.
7. services
Tempat business logic utama aplikasi. Di sinilah proses inti dijalankan sebelum akses ke data layer.
8. repositories
Lapisan akses data atau CRUD. Bagian ini fokus menjalankan query dan memisahkan logic database dari service.
9. utils
Berisi helper function reusable seperti formatter, parser, converter, dan fungsi pendukung lainnya.
10. tests
Untuk unit test, integration test, dan API test agar fitur tetap aman saat ada perubahan.
11. requirements.txt
Daftar dependency Python yang dibutuhkan project agar environment tetap konsisten.
12. .env
Tempat menyimpan environment variables seperti DB URL, secret key, API key, dan konfigurasi sensitif.
Flow sederhananya:
Client Request → API Router → Service → Repository → Database → Response
Dengan pola ini, route tidak terlalu penuh logic, service fokus ke proses bisnis, dan repository fokus ke akses database.
Hasilnya codebase jadi lebih clean, scalable, reusable, dan mudah di-test.
Save dulu kalau kamu lagi belajar bikin backend pakai FastAPI