Quickstarters
Feature Overview
How to Build a Backend for Golang?
35 mnt
pendahuluan dalam tutorial ini, anda akan belajar bagaimana membangun dan menguji backend lengkap untuk golang menggunakan back4app kami akan memandu anda melalui integrasi fitur fitur penting back4app—seperti manajemen database, pengaturan keamanan, otentikasi pengguna, penyimpanan file, dan cloud code—untuk membuat backend yang aman, fleksibel, dan dapat diskalakan yang bekerja dengan baik dengan server http go anda fokus kami adalah menggunakan api restful back4app untuk terhubung ke database dari klien http golang kami, daripada menggunakan parse sdk yang khusus, sehingga kami dapat menggambarkan bagaimana membangun fungsi handler yang mudah untuk dipelihara untuk backend baru anda anda akan melihat bagaimana pendekatan ini mengurangi kompleksitas pengembangan dibandingkan dengan menyiapkan server anda sendiri dari awal dengan mengandalkan kueri waktu nyata back4app, penyimpanan file, dan sistem otentikasi pengguna, anda akan mempercepat proses pembuatan backend anda pada akhir, anda akan tahu bagaimana membangun backend golang yang aman, menjadwalkan tugas otomatis, dan mengintegrasikan webhook eksternal anda akan siap untuk meningkatkan fondasi ini menjadi aplikasi siap produksi atau menambahkan logika kustom sesuai kebutuhan prasyarat akun back4app daftar gratis di sini https //www back4app com/ proyek back4app baru memulai dengan back4app https //www back4app com/docs/get started/new parse app lingkungan pengembangan go (golang) pastikan anda telah menginstal go di mesin anda anda dapat menemukan petunjuk di dokumen resmi go https //go dev/ pengetahuan dasar tentang paket http go dan api restful keterampilan dalam menulis handler func, mengurai pesan kesalahan, menangani permintaan metode post, dan menyiapkan server http localhost akan sangat membantu pastikan anda memiliki prasyarat ini sebelum melanjutkan pengaturan ini akan mempermudah pengalaman anda saat anda menemukan cara membangun backend untuk golang menggunakan back4app langkah 1 – membuat proyek baru di back4app dan menghubungkan mengapa proyek baru? membuat proyek back4app baru adalah langkah pertama anda di sinilah anda akan menyimpan data, mengonfigurasi penyimpanan file, menjadwalkan fungsi cloud, dan menambahkan tugas latar belakang proyek backend ini akan menjadi dasar untuk semua langkah selanjutnya masuk ke akun back4app anda klik “aplikasi baru” di dasbor back4app anda beri nama aplikasi anda (misalnya, “golang backend tutorial”) setelah dibuat, aplikasi ini akan muncul di dasbor anda aplikasi ini sekarang menjadi backend berbasis back4app anda menghubungkan melalui rest api back4app menyediakan api restful untuk membuat, memperbarui, dan menghapus data dalam golang, kita akan menggunakan klien http dari pustaka standar go untuk berkomunikasi dengan endpoint ini temukan id aplikasi dan kunci api rest dengan pergi ke pengaturan atau keamanan & kunci bagian dari aplikasi back4app anda anda akan memerlukan kredensial ini di setiap header permintaan kami akan menggambarkan ini di langkah langkah berikutnya ketika kami terhubung ke database menggunakan metode post, get, dan permintaan http lainnya langkah 2 – menyiapkan database membuat model data untuk menyimpan data di back4app, anda mendefinisikan kelas (tabel) dan kolom (field) misalnya, katakanlah kita ingin kelas todo anda dapat membuatnya secara manual di dasbor back4app pergi ke bagian database di dasbor aplikasi anda buat kelas baru bernama “todo ” tambahkan kolom seperti title (string) dan iscompleted (boolean) anda juga dapat membiarkan sistem secara otomatis membuat kolom dengan mengirimkan objek dengan field baru dari aplikasi golang anda membuat model data menggunakan agen ai buka agen ai di dasbor aplikasi anda deskripsikan model data yang anda inginkan (misalnya, “silakan buat kelas todo baru dengan field judul dan field iscompleted ”) terima skema yang disarankan fitur praktis ini menghemat waktu dalam merancang skema basis data anda membaca dan menulis data menggunakan rest api (contoh golang) berikut adalah contoh dasar tentang cara membuat (metode post) dan mengambil (metode get) data menggunakan paket http go anggap anda memiliki application id dan rest api key sebagai variabel lingkungan package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "log" "net/http" ) type todo struct { objectid string `json "objectid,omitempty"` title string `json "title,omitempty"` iscompleted bool `json "iscompleted,omitempty"` } func main() { // example create todo newtodo = todo{ title "buy groceries", iscompleted false, } created, err = createtodo(newtodo) if err != nil { log println("error creating todo ", err) } else { log println("created todo with id ", created objectid) } // example fetch todos todos, err = fetchalltodos() if err != nil { log println("error fetching todos ", err) } else { for , t = range todos { log println("fetched todo ", t title, t iscompleted) } } } // createtodo sends a post request to save a new record in the "todo" class func createtodo(todo todo) (todo, error) { // convert struct to json body, = json marshal(todo) // create http request req, err = http newrequest("post", "https //parseapi back4app com/classes/todo", bytes newbuffer(body)) if err != nil { return todo{}, err } // set necessary headers req header set("x parse application id", "your application id") req header set("x parse rest api key", "your rest api key") req header set("content type", "application/json") // execute the request client = \&http client{} resp, err = client do(req) if err != nil { return todo{}, err } defer resp body close() if resp statuscode != http statuscreated && resp statuscode != http statusok { bodybytes, = ioutil readall(resp body) return todo{}, fmt errorf("api error %s", string(bodybytes)) } // parse response var createdtodo todo if err = json newdecoder(resp body) decode(\&createdtodo); err != nil { return todo{}, err } return createdtodo, nil } // fetchalltodos retrieves all todo objects from back4app using get func fetchalltodos() (\[]todo, error) { req, err = http newrequest("get", "https //parseapi back4app com/classes/todo", nil) if err != nil { return nil, err } req header set("x parse application id", "your application id") req header set("x parse rest api key", "your rest api key") client = \&http client{} resp, err = client do(req) if err != nil { return nil, err } defer resp body close() if resp statuscode != http statusok { bodybytes, = ioutil readall(resp body) return nil, fmt errorf("api error %s", string(bodybytes)) } // parse response for "results" key var result struct { results \[]todo `json "results"` } if err = json newdecoder(resp body) decode(\&result); err != nil { return nil, err } return result results, nil } dalam contoh contoh ini, kami membuat klien http, menambahkan header yang diperlukan, dan menangani kode respons bersama dengan pesan kesalahan ingat untuk mengganti your application id dan your rest api key dengan kunci yang sebenarnya dari proyek back4app anda membaca dan menulis data menggunakan api graphql back4app juga menyediakan endpoint graphql di https //parseapi back4app com/graphql anda dapat menggunakan pustaka klien go graphql yang populer (seperti machine box graphql https //github com/machinebox/graphql ) untuk melakukan kueri atau mutasi ini bisa menjadi pendekatan yang lebih terstruktur daripada panggilan rest mentah bekerja dengan kueri langsung (opsional) jika anda ingin melihat pembaruan waktu nyata di aplikasi anda, anda dapat mengaktifkan kueri langsung di dasbor back4app golang tidak memiliki pustaka kueri langsung parse resmi namun, anda dapat mengimplementasikan koneksi websocket anda sendiri untuk mendengarkan pembaruan kueri langsung dari wss\ //your subdomain b4a io fitur ini berguna untuk aplikasi kolaboratif yang memerlukan sinkronisasi data segera langkah 3 – menerapkan keamanan dengan acl dan clp ikhtisar back4app menyediakan daftar kontrol akses (acl) dan izin tingkat kelas (clp) untuk melindungi data anda acl didefinisikan pada setiap objek, sementara clp mendefinisikan aturan umum untuk seluruh kelas izin tingkat kelas pergi ke database tampilan aplikasi anda di back4app pilih sebuah kelas (misalnya, todo ) klik izin tingkat kelas dan atur akses baca/tulis untuk berbagai peran pengguna atau akses publik acl anda dapat melewatkan acl saat membuat atau memperbarui objek melalui panggilan rest ini memastikan hanya pengguna atau peran tertentu yang dapat membaca/menulis data untuk detail lebih lanjut, kunjungi pedoman keamanan aplikasi https //www back4app com/docs/security/parse security langkah 4 – menulis fungsi kode cloud mengapa kode cloud kode cloud memungkinkan anda menjalankan fungsi sisi server, pemicu, atau validasi—tanpa mengelola server anda sendiri anda dapat menambahkan logika bisnis yang lebih canggih atau mengintegrasikan api eksternal dari sisi server contoh fungsi cloud contoh sederhana adalah fungsi yang menghitung panjang teks di main js file di dasbor back4app parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); penerapan terapkan cloud code dengan salah satu dari back4app cli dasbor back4app di cloud code > functions tempelkan kode anda di editor main js dan klik terapkan memanggil cloud functions dari golang anda dapat memanggil cloud function melalui rest dari klien http anda func callcalculatetextlength(txt string) (int, error) { body, = json marshal(map\[string]string{"text" txt}) req, err = http newrequest("post", "https //parseapi back4app com/functions/calculatetextlength", bytes newbuffer(body)) if err != nil { return 0, err } // headers req header set("x parse application id", "your application id") req header set("x parse rest api key", "your rest api key") req header set("content type", "application/json") client = \&http client{} resp, err = client do(req) if err != nil { return 0, err } defer resp body close() if resp statuscode != http statusok { bodybytes, = ioutil readall(resp body) return 0, fmt errorf("api error %s", string(bodybytes)) } var result struct { result map\[string]int `json "result"` } if err = json newdecoder(resp body) decode(\&result); err != nil { return 0, err } return result result\["length"], nil } langkah 5 – mengonfigurasi autentikasi aktifkan autentikasi pengguna back4app menggunakan kelas user untuk autentikasi ketika anda membuat pengguna baru melalui rest, backend akan menyimpan kredensial dengan aman dan menghasilkan token sesi curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"username" "alice", "password" "secret123", "email" "alice\@example com"}' \\ https //parseapi back4app com/users gunakan token sesi yang dikembalikan untuk permintaan selanjutnya yang memerlukan hak pengguna dalam go, anda akan mengirimkan jenis permintaan http yang sama dari klien http seperti yang ditunjukkan sebelumnya login sosial untuk login sosial seperti google atau facebook, anda perlu mengonfigurasi pengaturan oauth di back4app alur ini sering melibatkan pertukaran token konsultasikan dengan dokumentasi masuk dengan apple / login sosial https //www back4app com/docs/platform/sign in with apple untuk detail langkah 6 – menangani penyimpanan file pengaturan dan unggah anda dapat menyimpan file di back4app dengan mengirimkannya sebagai data yang dienkode base64 atau multipart/form data curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{ "file" { "name" "myimage png", " type" "file", "base64" "ivborw0kggoaaaansuheugaa " } }' \\ https //parseapi back4app com/files/myimage png setelah mengunggah, anda dapat melampirkan file ke objek dengan menyimpan url file yang dikembalikan atau penunjuk file dalam go, buat permintaan http dengan cara yang sama—pastikan anda mengkodekan konten file dengan benar langkah 7 – verifikasi email dan reset kata sandi pentingnya verifikasi email memastikan pengguna mengontrol email yang diberikan, sementara reset kata sandi membantu mereka memulihkan akun kedua fitur ini meningkatkan keamanan dan kepercayaan mengaktifkan verifikasi email pergi ke dasbor back4app di bawah pengaturan email , aktifkan email verifikasi sesuaikan template email anda jika perlu ketika seorang pengguna mendaftar, email verifikasi secara otomatis dikirim kepada mereka reset kata sandi gunakan endpoint rest requestpasswordreset https //docs parseplatform org/rest/guide/#r passwordreset untuk memulai reset kata sandi curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset langkah 8 – menjadwalkan tugas dengan cloud jobs apa yang dilakukan cloud jobs cloud jobs berjalan sesuai jadwal untuk mengotomatiskan tugas seperti membersihkan data yang sudah tidak terpakai atau mengirim buletin mingguan parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); // remove records older than 30 days // }); terapkan pekerjaan ini dan jadwalkan di dasbor back4app > pengaturan aplikasi > pengaturan server > pekerjaan latar belakang langkah 9 – mengintegrasikan webhook mengapa webhook webhook memungkinkan anda memberi tahu layanan eksternal ketika peristiwa tertentu terjadi misalnya, anda mungkin mengirim pemberitahuan slack ketika item todo baru dibuat pergi ke webhook di dasbor back4app anda konfigurasi endpoint anda (seperti https //your external service com/webhook ) tetapkan pemicu (misalnya, aftersave pada todo ) anda juga dapat memicu api eksternal dari cloud code dengan menulis permintaan klien http jika anda lebih suka kontrol langsung atas peristiwa langkah 10 – menjelajahi panel admin back4app ikhtisar aplikasi admin back4app adalah antarmuka titik dan klik yang dapat anda bagikan dengan anggota tim non teknis untuk mengelola data aktifkan aplikasi admin pergi ke more > admin app di dasbor back4app anda aktifkan dan buat pengguna admin gunakan subdomain yang anda pilih untuk masuk ke ui yang sederhana untuk manipulasi data ini membebaskan anda dari menulis kueri langsung atau kode kustom untuk melakukan operasi dasar kesimpulan dalam panduan ini, anda telah menemukan cara membangun backend untuk golang menggunakan back4app anda menjelajahi cara menghubungkan ke database melalui api restful, menerapkan langkah langkah keamanan dengan acl dan clp, menjalankan tugas terjadwal dengan cloud jobs, mengintegrasikan dengan layanan eksternal menggunakan webhook, dan mengatur otentikasi pengguna serta penyimpanan file dengan paket http go dan fitur kuat back4app, anda dapat membuat backend yang kuat yang menghemat waktu dan skala dengan mudah sekarang anda telah menguasai dasar dasarnya, anda dapat memperluas logika fungsi handler golang anda, menghubungkan ke endpoint api baru, dan membangun aplikasi kaya yang memenuhi kebutuhan anda langkah selanjutnya perbaiki aplikasi golang anda tambahkan fitur canggih seperti akses berbasis peran, atau optimalkan server http anda untuk produksi pelajari lebih lanjut tentang kueri waktu nyata integrasikan kueri langsung untuk aplikasi kolaboratif jelajahi dokumentasi back4app yang lebih lanjut sesuaikan acl, log, dan analitik anda gabungkan api pihak ketiga gunakan cloud code atau webhook langsung untuk memperluas fungsionalitas backend anda