Quickstarters
Feature Overview
How to Build a Backend for MacOS?
45 mnt
pendahuluan dalam tutorial ini, anda akan belajar cara membangun backend untuk macos menggunakan back4app dan parse swift sdk 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 membuat backend yang aman, skalabel, dan kuat yang berkomunikasi dengan lancar dengan aplikasi macos anda anda juga akan melihat bagaimana pengaturan cepat back4app dan lingkungan yang intuitif dapat secara drastis mengurangi waktu dan usaha dibandingkan dengan mengonfigurasi server dan database secara manual sepanjang jalan, anda akan mendapatkan pengalaman langsung dengan fungsionalitas kunci, termasuk fitur keamanan tingkat lanjut, penjadwalan tugas dengan cloud jobs, dan pengaturan webhook untuk integrasi eksternal pada akhir tutorial ini, anda akan siap untuk meningkatkan pengaturan dasar ini menjadi aplikasi macos yang siap produksi, atau dengan mudah menggabungkan logika kustom dan api pihak ketiga sesuai kebutuhan menguasai pendekatan ini akan memberdayakan anda untuk menyederhanakan alur kerja anda dan belajar bagaimana membangun backend untuk macos dengan cepat dan efisien 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 macos (xcode) anda dapat menginstal xcode dari mac app store https //apps apple com/us/app/xcode/id497799835 swift package manager atau cocoapods untuk menginstal parse swift sdk dokumentasi parse swift https //github com/netreconlab/parse swift pengetahuan dasar tentang swift dan pengembangan aplikasi macos dokumentasi resmi apple https //developer apple com/documentation/swift keterampilan dengan swiftui atau appkit sangat membantu pastikan anda memiliki semua prasyarat ini sebelum anda mulai memiliki proyek back4app anda yang sudah disiapkan dan lingkungan pengembangan macos lokal anda siap akan membantu anda mengikuti dengan lebih mudah langkah 1 – menyiapkan proyek back4app buat proyek baru langkah pertama dalam membangun backend macos 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, “macos 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 sdk parse swift back4app bergantung pada platform parse untuk mengelola data anda, menyediakan fitur waktu nyata, menangani otentikasi pengguna, dan lainnya menghubungkan aplikasi macos anda ke back4app melibatkan pemasangan sdk parse swift dan menginisialisasinya dengan kredensial dari dasbor back4app anda ambil kunci parse anda di dasbor back4app anda, navigasikan ke bagian “pengaturan aplikasi” atau “keamanan & kunci” aplikasi anda untuk menemukan id aplikasi dan kunci klien (atau clientkey ) anda juga akan menemukan url server parse (sering dalam format https //parseapi back4app com ) instal parse swift sdk di proyek macos anda jika menggunakan swift package manager dependencies \[ package(url "https //github com/netreconlab/parse swift git", from "5 0 0") ] jika menggunakan cocoapods , tambahkan ini ke podfile pod 'parseswiftog' inisialisasi parse di aplikasi macos anda (misalnya, di appdelegate swift jika menggunakan appkit, atau di @main struct jika membangun aplikasi swiftui) import parseswift import swiftui @main struct mymacosapp app { init() { task { do { try await parseswift initialize( applicationid "your application id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\(error)") } } } var body some scene { windowgroup { contentview() } } } dengan menyelesaikan langkah ini, anda telah membangun koneksi yang aman antara front end (ui) macos anda dan backend back4app semua permintaan dan transaksi data dialirkan dengan aman melalui sdk ini, mengurangi kompleksitas panggilan rest atau graphql manual (meskipun anda masih dapat menggunakannya jika diperlukan) langkah 2 – menyiapkan database menyimpan dan mengambil data dengan proyek back4app anda yang sudah disiapkan dan sdk parse swift yang terintegrasi ke dalam aplikasi macos anda, sekarang anda dapat mulai menyimpan dan mengambil data cara termudah untuk membuat objek adalah dengan mendefinisikan sebuah struct yang sesuai dengan parseobject dan kemudian memanggil save() struct todo parseobject { // parseobject required properties var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } func createtodoitem(title string, iscompleted bool) async { var todo = todo() todo title = title todo iscompleted = iscompleted do { try await todo save() print("todo saved successfully ") } catch { print("error saving todo \\(error)") } } func fetchtodos() async > \[todo] { let query = todo query() do { return try await query find() } catch { print("error fetching todos \\(error)") return \[] } } sebagai alternatif, anda dapat menggunakan api rest atau graphql dari back4app curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo back4app juga menyediakan antarmuka graphql mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } berbagai opsi ini memungkinkan anda untuk mengintegrasikan operasi data dengan cara yang paling sesuai dengan proses pengembangan anda—baik itu melalui sdk parse swift, rest, atau graphql 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 baik 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 mendukung berbagai tipe data string , number , boolean , object , date , file , pointer , array , relation , geopoint , dan polygon anda dapat memilih tipe yang sesuai untuk setiap field, atau membiarkan parse secara otomatis membuat kolom ini saat anda pertama kali menyimpan objek dari aplikasi macos anda back4app menawarkan agen ai yang dapat membantu anda merancang model data anda buka agen ai 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 agen ai membuat skema untuk anda data relasional jika anda memiliki data relasional—katakanlah, sebuah category objek yang menunjuk ke beberapa todo item—anda dapat menggunakan pointers atau relations di parse swift struct category parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom fields var name string? } struct todo parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var title string? var category pointer\<category>? } func createtaskforcategory(categoryobjectid string, title string) async { let pointer = pointer\<category>(objectid categoryobjectid) var todo = todo() todo title = title todo category = pointer do { try await todo save() print("todo linked to category") } catch { print("error creating task with category relationship \\(error)") } } func fetchtodoswithcategory() async { let query = todo query() include("category") do { let todos = try await query find() print("fetched todo items with category \\(todos)") } catch { print("error fetching todos \\(error)") } } kueri langsung untuk pembaruan waktu nyata, back4app menyediakan live queries dengan mengaktifkan live queries di dasbor back4app anda, anda dapat berlangganan perubahan dalam kelas tertentu dari aplikasi macos anda aktifkan live queries di dasbor back4app anda di bawah pengaturan server aplikasi anda inisialisasi live queries dalam kode (klien live query swift masih dalam pengembangan, tetapi anda dapat menggunakan pendekatan yang didorong oleh komunitas atau menunggu pembaruan resmi parse swift) src/parseconfig swift // example (subject to support in parse swift) // live query’s subdomain // parseswift configuration livequeryserverurl = url(string "wss\ //your subdomain here b4a io")! setelah berlangganan, anda akan menerima notifikasi setiap kali sebuah todo dibuat, diperbarui, atau dihapus ini sangat berharga untuk aplikasi desktop kolaboratif atau interaktif yang sangat di mana banyak pengguna atau proses perlu melihat data terbaru secara instan langkah 3 – menerapkan keamanan dengan acl dan clp mekanisme keamanan back4app back4app menganggap serius keamanan dengan menyediakan access control lists (acls) dan class level permissions (clps) 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 access control lists (acls) sebuah acl diterapkan pada objek individu untuk menentukan pengguna, peran, atau publik mana yang dapat melakukan operasi baca/tulis misalnya, jika aplikasi macos anda memiliki konsep “tugas pribadi” untuk pengguna yang sedang masuk import parseswift func createprivatetodo(title string) async { guard let currentuser = user current else { return } var todo = todo() todo title = title // create an acl granting read/write access only to the owner var acl = parseacl() acl setreadaccess(currentuser, value true) acl setwriteaccess(currentuser, value true) todo acl = acl do { try await todo save() print("private todo saved") } catch { print("error saving private todo \\(error)") } } ketika anda menyimpan objek, ia memiliki acl yang mencegah siapa pun kecuali pengguna yang ditentukan untuk membaca atau memodifikasinya class level permissions (clps) clps 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 membaca atau menulis, atau “tidak ada akses” untuk publik langkah 4 – menulis dan menerapkan fungsi cloud 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 sendiri 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 dalam sebuah main js file anda kemudian menerapkan file ini ke proyek back4app anda, dan itu berjalan di lingkungan parse server ini memungkinkan anda untuk menjaga logika sensitif di sisi server kasus penggunaan umum logika bisnis perhitungan atau transformasi sebelum menyimpan data validasi data memastikan bidang tertentu memenuhi kriteria pemicu melakukan tindakan saat data berubah integrasi menghubungkan dengan api eksternal (misalnya, pembayaran, notifikasi) contoh fungsi // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); mengdeploy melalui back4app cli instal cli curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash konfigurasi kunci akun anda b4a configure accountkey deploy kode cloud anda b4a deploy memanggil fungsi anda dari macos menggunakan swift import parseswift func gettextlength(text string) async { do { let result = try await parsecloud callfunction("calculatetextlength", with \["text" text]) if let resultdict = result as? \[string any], let length = resultdict\["length"] as? int { print("text length \\(length)") } } catch { print("error calling cloud function \\(error)") } } anda juga dapat memanggilnya melalui rest atau graphql, sama seperti di kerangka kerja lainnya langkah 5 – mengonfigurasi autentikasi pengguna autentikasi pengguna di back4app back4app memanfaatkan kelas parseuser sebagai dasar untuk autentikasi secara default, parse menangani hashing kata sandi, token sesi, dan penyimpanan yang aman, sehingga anda tidak perlu mengatur alur keamanan yang kompleks secara manual mengatur autentikasi pengguna dalam aplikasi macos, anda dapat membuat pengguna baru dengan struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // default properties var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } func signupuser(username string, password string, email string) async { var newuser = user() newuser username = username newuser password = password newuser email = email do { newuser = try await newuser signup() print("user signed up successfully!") } catch { print("error signing up user \\(error)") } } func loginuser(username string, password string) async { do { let user = try await user login(username username, password password) print("user logged in \\(user)") } catch { print("error logging in user \\(error)") } } melalui rest, login mungkin terlihat seperti curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login manajemen sesi setelah login berhasil, parse membuat sebuah token sesi anda dapat mengakses pengguna yang saat ini sedang login if let currentuser = user current { print("currently logged in user \\(currentuser username ?? "no username")") } else { print("no user is logged in") } keluar do { try await user logout() } catch { print("error logging out \\(error)") } integrasi login sosial anda dapat mengintegrasikan penyedia populer seperti google, apple, atau facebook dengan mengonfigurasi authdata instruksi rinci bervariasi, jadi silakan merujuk ke dokumen login sosial https //www back4app com/docs/platform/sign in with apple verifikasi email dan reset kata sandi untuk mengaktifkan verifikasi email dan reset kata sandi navigasikan ke pengaturan email di dasbor back4app aktifkan verifikasi email konfigurasikan alamat dari , template email, dan domain kustom anda jika diinginkan ini meningkatkan keamanan akun dengan memvalidasi email pengguna dan menyediakan metode pemulihan kata sandi langkah 6 – menangani penyimpanan file mengunggah dan mengambil file parse menyertakan kelas parsefile untuk menangani unggahan file, yang disimpan dengan aman oleh back4app func uploadfile(data data) async > parsefile? { let file = parsefile(name "doc txt", data data) do { let savedfile = try await file save() print("file saved ", savedfile url ?? "no url") return savedfile } catch { print("error uploading file ", error) return nil } } lampirkan ke objek struct photo parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var imagefile parsefile? } func createphotoobject(file parsefile) async { var photo = photo() photo imagefile = file do { try await photo save() print("photo object saved!") } catch { print("error saving photo ", error) } } keamanan file anda dapat mengonfigurasi keamanan unggahan file di pengaturan parse server anda misalnya, mengontrol pengguna mana yang dapat mengunggah atau menghapus file perlu diingat bahwa jika anda membagikan url file, siapa pun yang memiliki url tersebut dapat mengaksesnya kecuali anda telah menetapkan aturan yang lebih ketat di sisi server langkah 7 – verifikasi email dan reset kata sandi ikhtisar verifikasi email dan reset kata sandi sangat penting untuk manajemen pengguna yang aman kami telah membahasnya di bawah langkah 5 , tetapi sebagai pengingat aktifkan fitur ini di dasbor back4app (pengaturan email) konfigurasikan template email “aktifkan verifikasi email” dan “reset kata sandi” uji alur dari aplikasi macos anda langkah 8 – penjadwalan tugas dengan pekerjaan cloud pekerjaan cloud pekerjaan cloud memungkinkan anda untuk menjadwalkan dan menjalankan tugas rutin di backend anda, seperti mengirim email berkala atau membersihkan data misalnya // 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); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); terapkan cloud code anda dengan pekerjaan baru pergi ke dasbor back4app > pengaturan aplikasi > pengaturan server > pekerjaan latar belakang jadwalkan pekerjaan (misalnya, harian) langkah 9 – 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 siapkan endpoint (misalnya, 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 sebagai contoh, jika anda ingin memberi tahu 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 ” langkah 10 – menjelajahi panel admin back4app the back4app admin app 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 model centric , user friendly antarmuka yang menyederhanakan administrasi basis data, manajemen data kustom, dan operasi tingkat perusahaan mengaktifkan admin app aktifkan dengan pergi ke app dashboard > more > admin app dan mengklik “aktifkan admin app ” buat pengguna admin pertama , yang secara otomatis menghasilkan peran baru ( b4aadminuser ) dan kelas yang relevan dalam skema aplikasi anda pilih subdomain untuk mengakses antarmuka admin dan selesaikan pengaturannya masuk menggunakan kredensial admin yang anda buat untuk mengakses dasbor admin app 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 macos di back4app mengonfigurasi database dengan skema kelas, tipe data, dan hubungan mengintegrasikan kueri waktu nyata (kueri langsung) 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 pekerjaan cloud untuk tugas latar belakang otomatis menggunakan webhooks untuk mengintegrasikan dengan layanan eksternal menjelajahi panel admin back4app untuk manajemen data dengan antarmuka depan macos yang solid dan backend back4app yang kuat, anda sekarang dilengkapi dengan baik untuk mengembangkan aplikasi desktop yang kaya fitur, dapat diskalakan, dan aman teruslah menjelajahi fungsionalitas yang lebih canggih, integrasikan logika bisnis anda, dan manfaatkan kekuatan back4app untuk menghemat waktu anda dalam administrasi server dan database langkah selanjutnya bangun aplikasi macos yang siap produksi dengan memperluas backend ini untuk menangani model data yang lebih kompleks, strategi caching, dan optimasi kinerja integrasikan fitur canggih seperti alur otentikasi khusus, kontrol akses berbasis peran, atau api eksternal (seperti gerbang pembayaran) periksa dokumentasi resmi back4app untuk penjelasan lebih dalam tentang keamanan canggih, penyetelan kinerja, dan analisis log jelajahi tutorial lainnya tentang komunikasi 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