Bagaimana Membuat Backend untuk Elixir?
Dalam tutorial ini, Anda akan belajar cara membangun backend untuk Elixir menggunakan Back4App.
Kami akan menjelaskan cara mengintegrasikan fitur-fitur penting Back4App—seperti manajemen database, Fungsi Cloud Code, API REST dan GraphQL, otentikasi pengguna, dan kueri waktu nyata (Kueri Langsung)—untuk membuat backend yang aman, skalabel, dan kuat.
Elixir, yang berjalan di Erlang VM (BEAM) dan memanfaatkan OTP (Erlang OTP), dikenal karena lingkungan yang toleran terhadap kesalahan dan bersifat konkuren, yang sangat cocok dengan Back4App untuk membentuk infrastruktur modern yang berkinerja tinggi.
Anda akan melihat bagaimana pengaturan cepat Back4App dan lingkungan yang intuitif dapat secara drastis mengurangi waktu dan usaha Anda dibandingkan dengan mengonfigurasi server dan database secara manual.
Ini termasuk memanfaatkan pencocokan pola, ditambah menghubungkan ke kerangka web pilihan Elixir.
Pada akhir tutorial ini, Anda akan memiliki dasar yang solid yang dapat Anda kembangkan menjadi aplikasi siap produksi atau ditingkatkan dengan logika kustom dan API pihak ketiga.
Untuk menyelesaikan tutorial ini, Anda akan membutuhkan:
- Akun Back4App dan proyek Back4App baru Memulai dengan Back4app. Jika Anda tidak memiliki akun, Anda dapat membuatnya secara gratis. Ikuti panduan di atas untuk menyiapkan proyek Anda.
- Lingkungan pengembangan Elixir dasar Pastikan Anda telah menginstal Elixir di mesin Anda. Jika Anda berencana untuk menggunakan kerangka web seperti Phoenix, lihat panduan instalasi Phoenix sebagai referensi.
- Keterampilan dengan konsep Elixir Dokumentasi Resmi Elixir. Jika Anda baru mengenal Elixir, tinjau sumber daya ini atau tutorial pemula sebelum memulai.
Pastikan Anda memiliki semua prasyarat ini sebelum Anda mulai. Memiliki proyek Back4App Anda yang disiapkan dan lingkungan Elixir lokal Anda siap akan membantu Anda mengikuti dengan lebih lancar.
Langkah pertama dalam cara membangun backend untuk Elixir di Back4App adalah membuat proyek baru. Jika Anda belum membuat satu, ikuti langkah-langkah ini:
- Masuk ke akun Back4app Anda.
- Klik tombol “Aplikasi Baru” di dasbor Back4App Anda.
- Beri nama aplikasi Anda (misalnya, “Elixir-Backend-Tutorial”).

Setelah proyek dibuat, Anda akan melihatnya terdaftar di dasbor Back4App Anda. Proyek ini akan menjadi dasar untuk semua konfigurasi backend yang dibahas dalam tutorial ini.
Back4App menggunakan platform Parse sebagai dasar. Untuk Elixir, saat ini tidak ada SDK Parse resmi. Sebagai gantinya, Anda dapat dengan mudah terhubung ke Back4App menggunakan API REST atau GraphQL. Dalam proyek Elixir Anda, Anda akan:
- Ambil Application ID Anda dan REST atau GraphQL Keys dari bagian “App Settings” atau “Security & Keys” di dasbor Back4App.
Sebagai contoh, untuk menyimpan kredensial dalam file konfigurasi (config/dev.exs atau yang serupa):
Anda kemudian dapat merujuk kredensial ini dalam kode Anda untuk melakukan panggilan REST. Sepanjang panduan ini, kami akan menunjukkan cara berinteraksi dengan database Back4App, sistem pengguna, dan fitur lainnya menggunakan permintaan HTTP atau GraphQL standar.
Di Back4App, data disimpan dalam kelas. Anda dapat membuat kelas baru di dasbor Back4App:
- Navigasikan ke bagian “Database” di dasbor Back4App Anda.
- Buat kelas baru (misalnya, “Todo”) dan tambahkan kolom yang relevan, seperti judul (String) dan isCompleted (Boolean).

Back4App juga menyediakan AI Agent untuk membantu Anda mendeskripsikan dan membuat model data Anda:
- Buka AI Agent dari Dasbor Aplikasi Anda atau menu.
- Deskripsikan model data Anda dalam bahasa yang sederhana (misalnya, “Tolong, buat aplikasi Todo baru dengan skema kelas yang lengkap.”).
- Biarkan AI Agent membuat skema secara otomatis.

Karena Elixir tidak memiliki SDK Parse resmi, kita akan melewatkan penggunaan SDK secara langsung. Sebagai gantinya, kita akan menunjukkan REST, GraphQL, dan Live Queries pendekatan di bawah ini.
Instal klien HTTP seperti HTTPoison di mix.exs:
Kemudian, jalankan mix deps.get.
Untuk membuat (menyimpan) objek Todo dari aplikasi Elixir Anda:
Dan untuk mengquery objek Todo Anda:
Anda juga dapat berinteraksi melalui GraphQL. Misalnya, membuat Todo:
Di Elixir, Anda mungkin mengirim ini dengan klien HTTP juga:
Untuk pembaruan waktu nyata, Back4App menawarkan Live Queries. Anda dapat mengaktifkan Live Queries di Pengaturan Server. Karena saat ini tidak ada pustaka klien Parse Elixir yang asli, Anda biasanya akan terhubung melalui saluran Phoenix atau klien WebSocket kustom ke wss://YOUR_SUBDOMAIN_HERE.b4a.io endpoint yang disediakan. Ini bisa lebih rumit, memerlukan pengkodean kustom untuk menangani langganan, pesan, dll.
Back4App menawarkan Daftar Kontrol Akses (ACL) dan Izin Tingkat Kelas (CLP) untuk melindungi dan mengelola akses data. ACL berlaku untuk objek individu, sementara CLP berlaku untuk seluruh kelas.

- Izin Tingkat Kelas (CLPs): Di Dasbor Back4App Anda, di bawah Database, pilih sebuah kelas (misalnya, “Todo”) dan buka tab Izin Tingkat Kelas. Sesuaikan pengaturan (misalnya, “Memerlukan Autentikasi” atau “Tidak Ada Akses” untuk publik).
- Konfigurasi ACL: Saat membuat atau memperbarui objek, Anda dapat mengirim data ACL dalam permintaan REST atau GraphQL Anda. Misalnya, tentukan field _ACL dalam JSON jika Anda memerlukan kontrol per-objek yang lebih rinci.

Untuk informasi lebih lanjut, kunjungi Pedoman Keamanan Aplikasi.
Cloud Code memungkinkan Anda menjalankan logika sisi server tanpa mengelola server Anda sendiri. Dengan Elixir, Anda biasanya bergantung pada OTP untuk konkruensi, tetapi di sini Anda dapat dengan mudah membuat Cloud Code JavaScript di Back4App untuk menangani validasi, pemicu, atau logika bisnis kustom. Kode ini berjalan di Parse Server, sehingga Anda dapat menjaga kode Elixir Anda tetap fokus pada tugas klien atau mikroservis sementara pekerjaan berat dilakukan di Cloud Code.
Di main.js Anda di Dasbor Back4App atau menggunakan CLI:
Terapkan melalui Back4app CLI atau dengan menempelkan ke dasbor di bawah Cloud Code > Functions dan mengklik Terapkan.

Dari Elixir, Anda mungkin menggunakan:
Back4App menggunakan kelas User dari Parse untuk autentikasi. Anda dapat mengelola pendaftaran, login, dan pengaturan ulang kata sandi dengan mudah. Dari Elixir, Anda biasanya akan menggunakan panggilan REST:
Back4App mendukung integrasi dengan Google, Apple, Facebook, dan lainnya. Dalam banyak kasus, Anda akan mengarahkan pengguna ke alur OAuth, kemudian menggunakan token yang dikembalikan oleh penyedia ini untuk menyelesaikan login Parse. Lihat Dokumentasi Login Sosial untuk detail.
Back4App menyimpan file dengan aman. Dari Elixir, Anda dapat mengunggah file melalui REST:
Anda akan menerima respons JSON dengan URL file, yang dapat Anda simpan dalam sebuah kelas (misalnya, Foto) untuk referensi.
Anda dapat mengonfigurasi siapa yang dapat mengunggah file di fileUpload pengaturan proyek Back4App Anda, membatasi unggahan hanya untuk pengguna yang terautentikasi jika diinginkan.
Verifikasi email memastikan bahwa pengguna memiliki alamat email yang digunakan selama pendaftaran. Reset kata sandi memungkinkan mereka memulihkan akun dengan aman. Kedua fitur ini sudah terintegrasi di Back4App.
- Aktifkan verifikasi email di “Pengaturan Aplikasi” atau “Autentikasi” aplikasi Anda.
- Konfigurasi Alamat Pengirim dan template email.
- Aktifkan reset kata sandi untuk memungkinkan pengguna mereset melalui tautan yang dikirimkan kepada mereka.
Setelah diaktifkan di dashboard, Anda dapat memicu reset kata sandi:
Pekerjaan Cloud memungkinkan Anda mengotomatiskan tugas rutin seperti membersihkan data lama atau mengirim email berkala. Anda menulisnya di Cloud Code.
- Terapkan kode tersebut.
- Pergi ke Dasbor Back4app > Pengaturan Aplikasi > Pengaturan Server > Pekerjaan Latar Belakang.
- Jadwalkan pekerjaan untuk dijalankan setiap hari atau pada frekuensi yang Anda pilih.

Webhooks memungkinkan aplikasi Back4App Anda untuk mengirim permintaan HTTP ke layanan eksternal (misalnya, saluran Slack atau Stripe) ketika peristiwa tertentu terjadi.
- Navigasi ke konfigurasi Webhooks di dasbor Back4App Anda > Lainnya > Webhooks.
- Atur endpoint (misalnya, https://your-service.com/webhook-endpoint).
- Konfigurasi pemicu seperti “Rekaman baru di kelas Todo.”

Jika Anda ingin mengirim data ke Slack setiap kali Todo dibuat, Anda dapat menambahkan webhook baru yang mengarah ke URL webhook masuk Slack Anda. Anda juga dapat mendefinisikan Webhooks dalam Cloud Code dengan mengirim permintaan HTTP kustom dalam pemicu seperti afterSave.

Aplikasi Back4app Admin App adalah antarmuka yang ramah pengguna untuk mengelola data Anda. Anda dapat mengaktifkannya dari App Dashboard > More > Admin App.

- Buat Pengguna Admin Pertama, yang mengatur peran B4aAdminUser dan kelas tambahan.
- Tetapkan Subdomain untuk mengakses antarmuka admin.
- Masuk untuk melihat dan mengelola data dalam antarmuka yang sederhana.

Dengan mengikuti tutorial ini tentang cara membangun backend untuk Elixir dengan Back4App, Anda telah:
- Membuat backend yang aman di platform Back4App menggunakan Elixir untuk integrasi.
- Mengatur database dengan kelas, tipe data, dan hubungan.
- Menggunakan REST/GraphQL untuk berinteraksi dengan data Anda dari Elixir.
- Menerapkan keamanan menggunakan ACL dan CLP.
- Menambahkan logika kustom dengan fungsi Cloud Code.
- Mengonfigurasi otentikasi pengguna dengan verifikasi email dan pengaturan ulang kata sandi.
- Menangani penyimpanan file dan pengambilan.
- Menjadwalkan pekerjaan latar belakang untuk otomatisasi.
- Mengintegrasikan layanan eksternal dengan webhook.
- Menjelajahi Panel Admin Back4App untuk manajemen data yang mudah.
Dengan model konkruensi Elixir (didukung oleh Erlang VM) dan OTP, dikombinasikan dengan layanan Back4App yang dapat diskalakan dan fleksibel, Anda dapat membangun backend yang sangat kuat.
Terus menjelajahi fitur-fitur yang lebih canggih, integrasikan logika bisnis Anda, dan biarkan Back4App membantu Anda menangani pekerjaan berat.
- Bangun aplikasi Elixir yang siap produksi dengan menggabungkan backend ini dengan framework web Elixir/Phoenix pilihan Anda.
- Integrasikan fitur-fitur canggih seperti kontrol akses berbasis peran atau API pihak ketiga (gerbang pembayaran, layanan pesan).
- Jelajahi dokumentasi resmi Back4app untuk keamanan tingkat lanjut, log, penyetelan kinerja, dan lainnya.
- Lihat tutorial lainnya untuk aplikasi waktu nyata, dasbor IoT, atau layanan berbasis lokasi. Dengan pencocokan pola dan konkruensi OTP yang tersedia, Anda siap untuk menangani berbagai aplikasi!
