Quickstarters
Feature Overview
How to Build a Backend for Blazor?
38 mnt
pendahuluan dalam tutorial ini, anda akan belajar bagaimana membangun backend lengkap untuk aplikasi blazor menggunakan back4app kami akan membahas integrasi fitur fitur penting back4app seperti manajemen database, cloud code functions, rest dan graphql apis, otentikasi pengguna, dan kueri waktu nyata (live queries) untuk menciptakan backend yang aman, skalabel, dan kuat yang berkomunikasi dengan mulus dengan frontend blazor anda memanfaatkan layanan backend yang kuat dari back4app dengan blazor, sebuah kerangka kerja asp net core untuk membangun ui web interaktif menggunakan c#, memungkinkan pengembang untuk mempercepat pengembangan backend apakah anda membangun aplikasi blazor server atau aplikasi blazor webassembly, integrasi yang mulus dengan back4app dapat secara drastis mengurangi waktu pengembangan sambil memastikan logika bisnis sisi server yang berkualitas tinggi pada akhir tutorial ini, anda akan memiliki struktur backend yang aman yang disesuaikan untuk aplikasi web full stack menggunakan blazor anda akan mendapatkan wawasan tentang cara menangani operasi data, menerapkan kontrol keamanan, dan mengimplementasikan fungsi cloud, menjadikan aplikasi web blazor anda kuat dan skalabel prasyarat untuk menyelesaikan tutorial ini, anda akan membutuhkan akun back4app dan proyek back4app baru memulai dengan back4app https //www back4app com/docs/get started/new parse app jika anda tidak memiliki akun, anda dapat membuat satu secara gratis ikuti panduan di atas untuk menyiapkan proyek anda lingkungan pengembangan blazor dasar anda dapat menyiapkannya dengan menginstal net sdk terbaru dari microsoft https //dotnet microsoft com/download dan membuat proyek blazor baru menggunakan template seperti dotnet new blazorserver atau dotnet new blazorwasm net sdk (versi 6 atau lebih tinggi) terinstal pastikan anda memiliki net sdk untuk membangun dan menjalankan aplikasi blazor keterampilan dalam konsep c# dan blazor dokumentasi resmi blazor https //docs microsoft com/en us/aspnet/core/blazor/?view=aspnetcore 6 0 jika anda baru mengenal blazor, tinjau dokumen resmi atau tutorial pemula sebelum memulai pastikan anda memiliki prasyarat ini sebelum memulai untuk memastikan pengalaman tutorial yang lancar langkah 1 – menyiapkan proyek back4app buat proyek baru langkah pertama dalam membangun backend blazor anda 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, “blazor 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 sambungkan parse sdk back4app bergantung pada parse platform untuk mengelola data anda, menyediakan fitur waktu nyata, menangani otentikasi pengguna, dan lainnya menghubungkan aplikasi blazor anda ke back4app melibatkan pemasangan parse sdk untuk net dan menginisialisasinya dengan kredensial dari dasbor back4app anda ambil kunci parse anda di dasbor back4app anda, navigasikan ke bagian “pengaturan aplikasi” atau “keamanan & kunci” untuk menemukan id aplikasi dan net key anda juga akan menemukan url server parse (sering dalam format https //parseapi back4app com ) pasang parse sdk di proyek blazor anda dotnet add package parse inisialisasi parse di aplikasi blazor anda biasanya, anda akan mengatur inisialisasi di program cs atau kelas layanan khusus program cs using parse; var builder = webapplication createbuilder(args); // inisialisasi parse parseclient initialize(new parseclient configuration { applicationid = "your application id", windowskey = "your dotnet key", server = "https //parseapi back4app com" }); var app = builder build(); // sisa konfigurasi anda konfigurasi ini memastikan bahwa setiap kali anda menggunakan parse di aplikasi blazor anda, itu sudah dikonfigurasi sebelumnya untuk terhubung ke instance back4app spesifik anda dengan menyelesaikan langkah ini, anda telah membangun koneksi yang aman antara frontend blazor anda dan backend back4app, membuka jalan untuk melakukan operasi basis data, manajemen pengguna, dan lainnya langkah 2 – menyiapkan basis data menyimpan dan mengambil data dengan proyek back4app anda yang sudah disiapkan dan sdk parse terintegrasi ke dalam aplikasi blazor anda, anda sekarang dapat mulai menyimpan dan mengambil data cara termudah untuk membuat catatan adalah dengan menggunakan parseobject kelas somedataservice cs using parse; using system threading tasks; public class somedataservice { public async task\<parseobject> createtodoitemasync(string title, bool iscompleted) { var todo = new parseobject("todo"); todo\["title"] = title; todo\["iscompleted"] = iscompleted; try { await todo saveasync(); console writeline("todo saved successfully " + todo objectid); return todo; } catch (exception ex) { console writeline("error saving todo " + ex message); return null; } } public async task\<ilist\<parseobject>> fetchtodosasync() { var query = new parsequery\<parseobject>("todo"); try { var results = await query findasync(); console writeline("fetched todo items " + results count); return results; } catch (exception ex) { console writeline("error fetching todos " + ex message); return null; } } } sebagai alternatif, anda dapat menggunakan endpoint api rest back4app untuk operasi desain skema dan tipe data secara default, parse memungkinkan pembuatan skema secara langsung , tetapi anda juga dapat mendefinisikan kelas dan tipe data anda di dasbor back4app untuk kontrol yang lebih 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 mendukung berbagai jenis data string , number , boolean , object , date , file , pointer, array, relation , geopoint , dan polygon anda dapat memilih jenis yang sesuai untuk setiap field jika anda mau, anda juga dapat membiarkan parse secara otomatis membuat kolom kolom ini saat anda pertama kali menyimpan objek dari aplikasi blazor anda back4app menawarkan ai agent yang dapat membantu anda merancang model data anda buka ai agent dari dasbor aplikasi anda atau di menu deskripsikan model data anda dalam bahasa sederhana (misalnya, “tolong, buat aplikasi todo baru di back4app dengan skema kelas yang lengkap ”) biarkan ai agent membuat skema untuk anda menggunakan ai agent dapat menghemat waktu anda saat mengatur arsitektur data anda dan memastikan konsistensi di seluruh aplikasi anda data relasional jika anda memiliki data relasional misalnya, sebuah category objek yang menunjuk ke beberapa todo item anda dapat menggunakan pointers atau relations di parse prosesnya mirip dengan reactjs tetapi menggunakan objek net somedataservice cs (lanjutan) public async task\<parseobject> createtaskforcategoryasync(string categoryobjectid, string title) { var todo = new parseobject("todo"); // buat pointer ke kategori var categorypointer = parseobject createwithoutdata("category", categoryobjectid); todo\["title"] = title; todo\["category"] = categorypointer; try { await todo saveasync(); return todo; } catch (exception ex) { console writeline("kesalahan saat membuat tugas dengan hubungan kategori " + ex message); return null; } } saat melakukan query, sertakan data pointer somedataservice cs (continuation) public async task\<ilist\<parseobject>> fetchtodoswithcategoryasync() { var query = new parsequery\<parseobject>("todo") include("category"); try { var todoswithcategory = await query findasync(); return todoswithcategory; } catch (exception ex) { console writeline("error fetching todos with category " + ex message); return null; } } kueri langsung untuk pembaruan waktu nyata dalam aplikasi blazor server, pertimbangkan untuk menggunakan koneksi signalr untuk kueri langsung meskipun sdk net parse mendukung kueri langsung, mengintegrasikannya secara langsung dalam aplikasi blazor mungkin memerlukan pengaturan tambahan dengan signalr untuk komunikasi waktu nyata aktifkan kueri langsung di dasbor back4app anda di bawah pengaturan server pastikan “kueri langsung” diaktifkan konfigurasi klien kueri langsung di net jika diperlukan namun, untuk aplikasi blazor, memanfaatkan signalr mungkin lebih idiomatik untuk koneksi sisi server karena kompleksitas pengaturan kueri langsung dalam blazor dan potensi keterbatasan sdk net parse dalam blazor webassembly, anda mungkin perlu menerapkan layanan sisi server yang menghubungkan kueri langsung parse dengan klien signalr langkah 3 – menerapkan keamanan dengan acl dan clp mekanisme keamanan back4app back4app menganggap keamanan dengan serius dengan menyediakan daftar kontrol akses (acl) dan izin tingkat kelas (clp) fitur fitur ini memungkinkan anda membatasi siapa yang dapat membaca atau menulis data berdasarkan objek atau kelas, memastikan hanya pengguna yang berwenang yang dapat memodifikasi data anda daftar kontrol akses (acl) sebuah acl diterapkan pada objek individu untuk menentukan pengguna, peran, atau publik mana yang dapat melakukan operasi baca/tulis misalnya somedataservice cs (acl example) public async task\<parseobject> createprivatetodoasync(string title, parseuser owneruser) { var todo = new parseobject("todo"); todo\["title"] = title; // create an acl granting read/write access only to the owner var acl = new parseacl(owneruser); acl publicreadaccess = false; acl publicwriteaccess = false; todo acl = acl; try { await todo saveasync(); return todo; } catch (exception ex) { console writeline("error saving private todo " + ex message); return null; } } ketika anda menyimpan objek, ia memiliki acl yang mencegah siapa pun kecuali pengguna yang ditentukan untuk membaca atau memodifikasinya izin tingkat kelas (clp) clp mengatur izin default seluruh kelas, seperti apakah kelas tersebut dapat dibaca atau ditulis secara publik, atau jika hanya peran tertentu yang dapat mengaksesnya pergi ke dasbor back4app anda , pilih aplikasi anda, dan buka database bagian pilih kelas (misalnya, “todo”) buka izin tingkat kelas tab konfigurasikan default anda, seperti “memerlukan autentikasi” untuk baca atau tulis, atau “tidak ada akses” untuk publik izin ini menetapkan dasar, sementara acl menyempurnakan izin untuk objek individu model keamanan yang kuat biasanya menggabungkan baik clp (pembatasan luas) dan acl (pembatasan halus per objek) untuk informasi lebih lanjut, kunjungi pedoman keamanan aplikasi https //www back4app com/docs/security/parse security langkah 4 – menulis dan menerapkan cloud functions cloud code adalah fitur dari lingkungan parse server yang memungkinkan anda menjalankan kode javascript kustom di sisi server tanpa perlu mengelola server atau infrastruktur anda dengan menulis cloud code, anda dapat memperluas backend back4app anda dengan logika bisnis tambahan, validasi, pemicu, dan integrasi yang berjalan dengan aman dan efisien di parse server cara kerjanya ketika anda menulis cloud code, anda biasanya menempatkan fungsi javascript, pemicu, dan modul npm yang diperlukan di dalam main js (atau app js ) file file ini kemudian diterapkan ke proyek back4app anda, yang dieksekusi dalam lingkungan parse server karena fungsi dan pemicu ini berjalan di server, anda dapat mempercayainya untuk menangani logika rahasia, memproses data sensitif, atau melakukan panggilan api yang hanya untuk backend proses yang mungkin tidak ingin anda ekspos langsung ke klien semua cloud code untuk aplikasi back4app anda berjalan di dalam parse server yang dikelola oleh back4app, jadi anda tidak perlu khawatir tentang pemeliharaan server, penskalaan, atau penyediaan setiap kali anda memperbarui dan menerapkan file main js anda, parse server yang sedang berjalan akan diperbarui dengan kode terbaru anda struktur file main js sebuah main js yang khas mungkin berisi pernyataan require untuk modul yang diperlukan (paket npm, modul node bawaan, atau file kode cloud lainnya) definisi fungsi cloud menggunakan parse cloud define() pemicu seperti parse cloud beforesave() , parse cloud aftersave() , dll modul npm yang anda instal (jika diperlukan) main js // main js // 1 import necessary modules and other cloud code files const axios = require('axios'); const report = require(' /reports'); // 2 define a custom cloud function parse cloud define('fetchexternaldata', async (request) => { const url = request params url; if (!url) { throw new error('url parameter is required'); } const response = await axios get(url); return response data; }); // 3 example of a beforesave trigger parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw new error('todo must have a title'); } }); dengan kemampuan untuk menginstal dan menggunakan modul npm, kode cloud menjadi sangat fleksibel, memungkinkan anda untuk mengintegrasikan dengan api eksternal, melakukan transformasi data, atau mengeksekusi logika sisi server yang kompleks kasus penggunaan tipikal logika bisnis misalnya, mengagregasi data untuk analitik atau melakukan perhitungan sebelum menyimpan ke database validasi data memastikan bahwa bidang tertentu ada atau bahwa pengguna memiliki izin yang benar sebelum menyimpan atau menghapus catatan pemicu melakukan tindakan ketika data berubah (misalnya, mengirim notifikasi ketika pengguna memperbarui profil mereka) integrasi menghubungkan dengan api atau layanan pihak ketiga penegakan keamanan memvalidasi dan membersihkan input untuk menegakkan keamanan sebelum melakukan operasi sensitif terapkan fungsi anda berikut adalah fungsi cloud code sederhana yang menghitung panjang string teks yang dikirim dari klien main js // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); menyebarkan melalui back4app cli https //www back4app com/docs/local development/parse cli 1 instal cli untuk linux/macos curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash untuk windows unduh b4a exe https //github com/back4app/parse cli/releases/download/release 3 3 1/b4a exe dari halaman rilis 2 konfigurasi kunci akun anda https //www back4app com/docs/local development/parse cli#f cxi b4a configure accountkey 3 terapkan kode cloud anda b4a deploy menerapkan melalui dasbor di dasbor aplikasi anda, pergi ke cloud code > functions salin/tempel fungsi ke dalam editor main js klik terapkan memanggil fungsi anda dari blazor menggunakan parse net sdk somedataservice cs (calling function) public async task\<int?> gettextlengthasync(string text) { try { var result = await parsecloud callfunctionasync\<dictionary\<string, object>>("calculatetextlength", new dictionary\<string, object> { { "text", text } }); if(result != null && result containskey("length")) return convert toint32(result\["length"]); return null; } catch(exception ex) { console writeline("error calling cloud function " + ex message); return null; } } anda juga dapat memanggilnya melalui rest atau graphql seperti yang ditunjukkan dalam tutorial reactjs langkah 5 – mengonfigurasi autentikasi pengguna autentikasi pengguna di back4app back4app memanfaatkan kelas parse user sebagai dasar untuk autentikasi secara default, parse menangani hashing kata sandi, token sesi, dan penyimpanan yang aman ini berarti anda tidak perlu mengatur alur keamanan yang kompleks secara manual mengatur autentikasi pengguna dalam aplikasi blazor, anda dapat membuat pengguna baru dengan authservice cs using parse; using system threading tasks; public class authservice { public async task signupuserasync(string username, string password, string email) { var user = new parseuser() { username = username, password = password, email = email }; try { await user signupasync(); console writeline("user signed up successfully!"); } catch (exception ex) { console writeline("error signing up user " + ex message); } } public async task loginuserasync(string username, string password) { try { var user = await parseuser loginasync(username, password); console writeline("user logged in " + user username); } catch (exception ex) { console writeline("error logging in user " + ex message); } } } manajemen sesi setelah login yang berhasil, parse membuat sebuah token sesi yang disimpan dalam objek pengguna di aplikasi blazor anda, anda dapat mengakses pengguna yang saat ini masuk somecomponent razor cs var currentuser = parseuser currentuser; if (currentuser != null) { console writeline("currently logged in user " + currentuser username); } else { console writeline("no user is logged in"); } parse secara otomatis menangani sesi berbasis token di latar belakang, tetapi anda juga dapat mengelola atau mencabutnya secara manual untuk keluar authservice cs (logout) public async task logoutasync() { await parseuser logoutasync(); console writeline("user logged out"); } integrasi login sosial back4app dan parse dapat terintegrasi dengan penyedia oauth populer, seperti google atau facebook konfigurasi dapat bervariasi dan sering melibatkan pengaturan sisi server atau paket tambahan lihat di dokumentasi login sosial https //www back4app com/docs/platform/sign in with apple untuk instruksi yang lebih rinci karena aplikasi blazor server berjalan di asp net core, anda mungkin mengintegrasikan login sosial menggunakan penyedia identitas asp net core bersama dengan parse untuk otentikasi yang mulus verifikasi email dan reset kata sandi untuk mengaktifkan verifikasi email dan reset kata sandi navigasikan ke pengaturan email di dasbor back4app anda aktifkan verifikasi email untuk memastikan pengguna baru memverifikasi kepemilikan alamat email mereka konfigurasikan alamat dari , template email, dan domain kustom anda jika diinginkan fitur fitur ini meningkatkan keamanan akun dan pengalaman pengguna dengan memvalidasi kepemilikan email pengguna dan menyediakan metode pemulihan kata sandi yang aman langkah 6 – menangani penyimpanan file mengunggah dan mengambil file parse mencakup kelas parsefile untuk menangani unggahan file, yang disimpan dengan aman oleh back4app fileservice cs using parse; using system; using system threading tasks; public class fileservice { public async task\<string> uploadimageasync(byte\[] filedata, string filename) { var parsefile = new parsefile(filename, filedata); try { await parsefile saveasync(); console writeline("file saved " + parsefile url); return parsefile url; } catch (exception ex) { console writeline("error uploading file " + ex message); return null; } } } untuk melampirkan file ke objek fileservice cs (continued) public async task\<parseobject> createphotoobjectasync(byte\[] filedata, string filename) { var photo = new parseobject("photo"); var parsefile = new parsefile(filename, filedata); photo\["imagefile"] = parsefile; try { await photo saveasync(); return photo; } catch (exception ex) { console writeline("error creating photo object " + ex message); return null; } } mengambil url file somecomponent razor cs var imagefile = photo get\<parsefile>("imagefile"); var imageurl = imagefile url; anda dapat menampilkan imageurl ini di komponen blazor anda dengan mengaturnya sebagai sumber dari sebuah \<img> tag keamanan file parse server menyediakan konfigurasi yang fleksibel untuk mengelola keamanan unggahan file gunakan acl pada parsefiles atau atur konfigurasi tingkat server sesuai kebutuhan langkah 7 – penjadwalan tugas dengan pekerjaan cloud pekerjaan cloud pekerjaan cloud di back4app memungkinkan anda untuk menjadwalkan dan menjalankan tugas rutin di backend anda seperti membersihkan data lama atau mengirim email ringkasan harian pekerjaan cloud yang tipikal mungkin terlihat seperti ini main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); terapkan kode cloud anda dengan pekerjaan baru (melalui cli atau dasbor) pergi ke dasbor back4app > pengaturan aplikasi > pengaturan server > pekerjaan latar belakang jadwalkan pekerjaan untuk dijalankan setiap hari atau pada interval yang sesuai dengan kebutuhan anda pekerjaan cloud memungkinkan anda untuk mengotomatiskan pemeliharaan latar belakang atau proses berkala lainnya tanpa memerlukan intervensi manual langkah 8 – mengintegrasikan webhook webhook memungkinkan aplikasi back4app anda untuk mengirim permintaan http ke layanan eksternal setiap kali peristiwa tertentu terjadi ini sangat kuat untuk mengintegrasikan dengan sistem pihak ketiga seperti gateway pembayaran, alat pemasaran email, atau platform analitik navigasikan ke konfigurasi webhook di dasbor back4app anda > lainnya > webhooks dan kemudian klik pada tambah webhook siapkan endpoint (misalnya, https //your external service com/webhook endpoint https //your external service com/webhook endpoint ) konfigurasi pemicu untuk menentukan peristiwa mana di kelas back4app anda atau fungsi cloud code yang akan memicu webhook misalnya, jika anda ingin memberi tahu saluran slack setiap kali todo baru dibuat buat aplikasi slack yang menerima webhook masuk salin url webhook slack di dasbor back4app anda, atur endpoint ke url slack tersebut untuk peristiwa “rekaman baru di kelas todo ” anda juga dapat menambahkan header http atau payload kustom jika diperlukan anda juga dapat mendefinisikan webhook di cloud code dengan membuat permintaan http kustom dalam pemicu seperti beforesave, aftersave langkah 9 – menjelajahi panel admin back4app aplikasi admin back4app adalah antarmuka manajemen berbasis web yang dirancang untuk pengguna non teknis untuk melakukan operasi crud dan menangani tugas data rutin tanpa menulis kode ini menyediakan antarmuka berbasis model , ramah pengguna yang menyederhanakan administrasi database, manajemen data kustom, dan operasi tingkat perusahaan mengaktifkan aplikasi admin aktifkan dengan pergi ke dasbor aplikasi > lainnya > aplikasi admin dan klik tombol “aktifkan aplikasi admin” buat pengguna admin pertama (username/kata sandi), yang secara otomatis menghasilkan peran baru (b4aadminuser) dan kelas (b4asetting, b4amenuitem, dan b4acustomfield) dalam skema aplikasi anda pilih subdomain untuk mengakses antarmuka admin dan selesaikan pengaturannya masuk menggunakan kredensial admin yang anda buat untuk mengakses dasbor aplikasi admin baru anda setelah diaktifkan, aplikasi admin back4app memudahkan untuk melihat, mengedit, atau menghapus catatan dari database anda tanpa memerlukan penggunaan langsung dari dasbor parse atau kode backend kesimpulan dengan mengikuti tutorial komprehensif ini, anda telah membuat backend yang aman untuk aplikasi blazor di back4app mengonfigurasi database dengan skema kelas, tipe data, dan hubungan mengintegrasikan kueri waktu nyata di mana diperlukan untuk pembaruan data segera menerapkan langkah langkah keamanan menggunakan acl dan clp untuk melindungi dan mengelola akses data menerapkan cloud code fungsi untuk menjalankan logika bisnis kustom di sisi server mengatur otentikasi pengguna dengan dukungan untuk verifikasi email dan pengaturan ulang kata sandi mengelola unggahan file dan pengambilan, dengan kontrol keamanan file opsional menjadwalkan cloud jobs untuk tugas latar belakang otomatis menggunakan webhooks untuk mengintegrasikan dengan layanan eksternal menjelajahi panel admin back4app untuk manajemen data dengan frontend blazor yang solid dan backend back4app yang kuat, anda sekarang siap untuk mengembangkan aplikasi web yang kaya fitur, skalabel, dan aman lanjutkan menjelajahi fungsionalitas yang lebih canggih, integrasikan logika bisnis anda, dan manfaatkan kekuatan back4app untuk menghemat waktu anda dalam administrasi server dan database selamat coding! langkah selanjutnya bangun aplikasi blazor yang siap produksi dengan memperluas backend ini untuk menangani model data yang lebih kompleks, strategi caching, dan optimasi kinerja integrasikan fitur fitur canggih seperti alur autentikasi khusus, kontrol akses berbasis peran, atau api eksternal periksa dokumentasi resmi back4app untuk penjelasan lebih dalam tentang keamanan canggih, penyesuaian kinerja, dan analisis log jelajahi tutorial lainnya tentang aplikasi chat waktu nyata, dasbor iot, atau layanan berbasis lokasi gabungkan teknik yang dipelajari di sini dengan api pihak ketiga untuk membuat aplikasi kompleks di dunia nyata