สร้างแบ็คเอนด์สำหรับแอปมือถือด้วย Back4App
ในบทความนี้ คุณจะได้เรียนรู้ว่าแบ็คเอนด์สำหรับแอปมือถือคืออะไรและทุกอย่างที่คุณจำเป็นต้องทราบเพื่อสร้างแบ็คเอนด์ของคุณเอง
เราจะดูความแตกต่างระหว่างแบ็คเอนด์กับฟรอนต์เอนด์ ประเภทต่าง ๆ ของแบ็คเอนด์ เรียนรู้เกี่ยวกับฟังก์ชันการทำงานของแบ็คเอนด์มือถือและค่าใช้จ่ายในการพัฒนาแบ็คเอนด์
สุดท้าย เราจะเรียนรู้วิธีสร้างแบ็คเอนด์สำหรับแอปมือถือขั้นพื้นฐานบน Back4app หนึ่งในผู้ให้บริการ MBaaS ที่ดีที่สุด
Contents
- 1 ความแตกต่างระหว่างฟรอนต์เอนด์กับแบ็คเอนด์
- 2 แบ็คเอนด์สำหรับแอปมือถือคืออะไร?
- 3 แบ็คเอนด์สำหรับมือถือมีฟังก์ชันอะไรบ้าง?
- 4 แอปมือถือจำเป็นต้องมีแบ็คเอนด์หรือไม่?
- 5 ประเภทของแบ็คเอนด์มีอะไรบ้าง?
- 6 การคำนวณค่าใช้จ่ายในการสร้างแบ็คเอนด์สำหรับแอปมือถือมีค่าใช้จ่ายเท่าไหร่?
- 7 วิธีการสร้างแบ็คเอนด์สำหรับแอปมือถือโดยใช้ MBaaS?
- 8 บทสรุป
ความแตกต่างระหว่างฟรอนต์เอนด์กับแบ็คเอนด์
คำว่า ฟรอนต์เอนด์และแบ็คเอนด์ หมายถึงการแยกความรับผิดชอบระหว่างชั้นการนำเสนอและชั้นการเข้าถึงข้อมูล
วิธีที่ง่ายที่สุดในการเข้าใจความแตกต่างของพวกมันคือการนึกภาพภูเขาน้ำแข็ง ฟรอนต์เอนด์อยู่เหนือระดับน้ำและคือทุกสิ่งที่ผู้ใช้มองเห็นและโต้ตอบได้ ในขณะที่แบ็คเอนด์คือส่วนของภูเขาน้ำแข็งที่อยู่ใต้น้ำ เป็นตรรกะพื้นฐานที่ขับเคลื่อนธุรกิจ
ฟรอนต์เอนด์
ฟรอนต์เอนด์คือส่วนติดต่อผู้ใช้กราฟิกของเว็บไซต์ แอปมือถือ หรือไคลเอนต์ประเภทอื่นที่ผู้ใช้สามารถโต้ตอบได้ ฟรอนต์เอนด์รวมถึงทุกแง่มุมที่มองเห็นของแอปพลิเคชัน เช่น การออกแบบ เมนู ข้อความ รูปภาพ วิดีโอ เป็นต้น ในโปรเจกต์ส่วนใหญ่จะคิดเป็นประมาณ 20% ของความพยายามทั้งหมดและไม่ซ้ำซาก
นักพัฒนาฟรอนต์เอนด์จำเป็นต้องดูแล:
- การออกแบบที่ตอบสนอง
- ประสิทธิภาพของแอป
- การเข้ากันได้ข้ามเบราว์เซอร์
- ความกังวลด้านการเข้าถึง
- การเพิ่มประสิทธิภาพ SEO
ฟรอนต์เอนด์ของเว็บมักจะถูกสร้างด้วยเครื่องมือเช่น HTML, CSS, JavaScript และ WebAssembly แอป Android พื้นบ้านเขียนด้วย Java/Kotlin ในขณะที่ iOS พื้นบ้านใช้ Objective-C และ Swift
ในช่วงไม่กี่ปีที่ผ่านมา นักพัฒนาฟรอนต์เอนด์จำนวนมากได้ปรับตัวใช้เครื่องมืออย่าง React Native, Vue และ Svelte Native เพื่อให้ง่ายต่อกระบวนการพัฒนาและทำให้ฐานโค้ดเดียวกันทำงานบนแพลตฟอร์มต่าง ๆ ได้
ฟรอนต์เอนด์สามารถ “ปรับใช้” กับบริการอย่าง Google Play, App Store, Vercel, Netlify
แบ็คเอนด์
แบ็คเอนด์หรือการพัฒนาฝั่งเซิร์ฟเวอร์คือการพัฒนาชั้นการเข้าถึงข้อมูล แบ็คเอนด์เป็นการเชื่อมต่อระหว่างฐานข้อมูลกับฟรอนต์เอนด์ แบ็คเอนด์ส่วนใหญ่มีอินเทอร์เฟซชั้นแอปพลิเคชัน (API) ซึ่งฟรอนต์เอนด์สามารถใช้เพื่อดึงและจัดเก็บข้อมูล
ข้อมูลมักจะถูกแลกเปลี่ยนในรูปแบบ JSON หรือ GraphQL แบ็คเอนด์มักจะคิดเป็นประมาณ 80% ของงานและเป็นงานที่ทำซ้ำ ตัวอย่างเช่น เกือบทุกโปรเจกต์ต้องการการตรวจสอบสิทธิ์ การอนุญาต การจัดการฐานข้อมูล เป็นต้น
นักพัฒนาแบ็คเอนด์มีหน้าที่รับผิดชอบ:
- การจัดการฐานข้อมูล
- ตรรกะทางธุรกิจของแอปพลิเคชัน
- ความสามารถในการปรับขยาย ความพร้อมใช้งานสูง
- ความกังวลด้านความปลอดภัย & การสำรองข้อมูล
นักพัฒนาแบ็คเอนด์มักใช้ภาษาการเขียนโปรแกรมเช่น Python, JavaScript (Node.js), Ruby, C#, Java & Go ขณะที่เขียนบทความนี้ สถาปัตยกรรมแบ็คเอนด์ที่ได้รับความนิยมมากที่สุดคือ Model-View-Controller (MVC) ซึ่งได้รับการนำไปใช้โดยเฟรมเวิร์กเว็บจำนวนมากเช่น Django และ Laravel
ส่วนประกอบที่สำคัญที่สุดของแบ็คเอนด์คือฐานข้อมูล เรามีฐานข้อมูลประเภทต่าง ๆ ที่สามารถแบ่งออกเป็นสามประเภททั่วไป:
- ฐานข้อมูล SQL
- ฐานข้อมูล NoSQL
- ฐานข้อมูลแบบมัลติพาราไดม์
แต่ละแบบมีข้อดีข้อเสีย ซึ่งควรพิจารณาเมื่อเริ่มต้นโปรเจกต์
แบ็คเอนด์สามารถปรับใช้กับแพลตฟอร์มต่าง ๆ ตามระดับของการแยกส่วนที่ต้องการ ตัวอย่างเช่น คุณสามารถใช้เซิร์ฟเวอร์ของคุณเอง IaaS (AWS, GCE, Azure) PaaS (Heroku, Digital Ocean App Service) หรือ BaaS (Back4app, Firebase, AWS Amplify)
อ่านต่อเพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนาแบ็คเอนด์สำหรับแอปมือถือ
แบ็คเอนด์สำหรับแอปมือถือคืออะไร?
แบ็คเอนด์สำหรับแอปมือถือคือส่วนหนึ่งของแอปที่ทำงานบนเซิร์ฟเวอร์ แทนที่จะทำงานบนอุปกรณ์เอง แบ็คเอนด์มีฟังก์ชันที่แอปต้องใช้ในการจัดเก็บและจัดการข้อมูล ตรวจสอบสิทธิ์ผู้ใช้ ประมวลผลและวิเคราะห์ข้อมูล และสื่อสารกับระบบหรือบริการอื่น ๆ
แบ็คเอนด์สามารถมีหลายรูปแบบ เช่น เซิร์ฟเวอร์ที่ทำงานบนคลาวด์ บริการฐานข้อมูล หรือ API มันให้โครงสร้างพื้นฐานและเครื่องมือที่แอปต้องการเพื่อทำงานได้อย่างถูกต้องและช่วยให้แอปสามารถมอบประสบการณ์ผู้ใช้ที่น่าตื่นเต้นและน่าดึงดูด
แบ็คเอนด์สำหรับมือถือมีฟังก์ชันอะไรบ้าง?
แบ็คเอนด์สำหรับแอปมือถือโดยทั่วไปมีฟังก์ชันดังนี้:
- การจัดเก็บและจัดการข้อมูล
- การประมวลผลและวิเคราะห์ข้อมูล
- การตรวจสอบสิทธิ์ & การอนุญาต
- การซิงโครไนซ์ระหว่างหลายอุปกรณ์
- ความสามารถในการผสานรวมกับระบบและบริการอื่น ๆ
- การจัดการงานฝั่งเซิร์ฟเวอร์
- การวิเคราะห์ & การตรวจสอบ
- การแจ้งเตือนแบบ Push
แอปมือถือจำเป็นต้องมีแบ็คเอนด์หรือไม่?
คำตอบสั้น ๆ: หากแอปของคุณทำงานได้ในเครื่อง (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต) โดยปกติแล้วคุณไม่จำเป็นต้องมีแบ็คเอนด์ แต่สิ่งนี้ไม่ได้หมายความว่าแอปของคุณจะไม่สามารถได้รับประโยชน์จากแบ็คเอนด์ได้
เพื่อให้เข้าใจคำตอบนี้ดียิ่งขึ้น ลองมาดูแอปที่เราใช้ในชีวิตประจำวัน
แอปที่ไม่ต้องการแบ็คเอนด์:
- เครื่องคิดเลข
- ปฎิทินและนาฬิกา
- กล้องและแกลเลอรี
- เครื่องบันทึกเสียง
- เกมผู้เล่นคนเดียว
แอปที่ต้องการแบ็คเอนด์:
- แอปอีคอมเมิร์ซ — ต้องใช้แบ็คเอนด์เพื่อติดตามสินค้าคงคลัง ประมวลผลคำสั่งซื้อ เป็นต้น
- แอปการขนส่ง — แบ็คเอนด์ช่วยให้สามารถประมวลผลตั๋ว ข้อมูลเกี่ยวกับความล่าช้า ฯลฯ
- แอปการส่งข้อความ — แบ็คเอนด์ใช้ในการส่งข้อความจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่ง
- แอปพยากรณ์อากาศ — ต้องใช้แบ็คเอนด์เพื่อดึงข้อมูลพยากรณ์อากาศปัจจุบัน
ตอนนี้ ลองคิดดูว่าแบ็คเอนด์จะช่วยปรับปรุงแอปเหล่านั้นได้อย่างไร:
- เครื่องคิดเลข — สามารถใช้แบ็คเอนด์เพื่อย้ายการคำนวณที่ซับซ้อนไปยังเซิร์ฟเวอร์ระยะไกล
- ปฏิทินและนาฬิกา — สามารถเก็บเหตุการณ์ไว้ในฐานข้อมูลและซิงค์ระหว่างอุปกรณ์ต่าง ๆ
- กล้อง — สามารถใช้บริการแบ็คเอนด์เพื่อแก้ไขความบิดเบือน แสง ฯลฯ
- เครื่องบันทึกเสียง — สามารถใช้บริการแบ็คเอนด์เพื่อลดเสียงรบกวน
- เกมผู้เล่นคนเดียว — สามารถเก็บคะแนนผู้ใช้ในฐานข้อมูลและแสดงกระดานคะแนน
เนื่องจากข้อดีมากมายที่แบ็คเอนด์มีให้ hampir ทุกแอปพลิเคชันมือถือจึงมีแบ็คเอนด์ หากไม่ใช่เพื่อการจัดเก็บข้อมูล แบ็คเอนด์ยังช่วยให้แอปมือถือเก็บข้อมูลการวิเคราะห์ ส่งการแจ้งเตือนแบบ Push ตรวจสอบแอป เก็บรายงานการล่ม และอื่น ๆ หากคุณต้องการประสบความสำเร็จ คุณน่าจะต้องการแบ็คเอนด์
ประเภทของแบ็คเอนด์มีอะไรบ้าง?
ขึ้นอยู่กับประเภทของแอปพลิเคชันของคุณ มีหลายประเภทของแบ็คเอนด์ที่คุณสามารถเลือกใช้ โดยทั่วไปแล้ว เราสามารถแบ่งออกเป็นสามกลุ่มตามระดับการแยกส่วน:
- Software as a Service (SaaS) หรือบริการบุคคลที่สาม
- Mobile Backend as a Service (MBaaS)
- แบ็คเอนด์ที่กำหนดเอง
มาดูกันว่าแต่ละแบบเป็นอย่างไรบ้าง
Software as a Service (SaaS) หรือบริการบุคคลที่สาม
Software as a Service (SaaS) คือรูปแบบการให้บริการซอฟต์แวร์ ซึ่งแอปพลิเคชันจะถูกโฮสต์โดยผู้ให้บริการบุคคลที่สามและเปิดให้ลูกค้าใช้งานผ่านทางอินเทอร์เน็ต
โซลูชัน SaaS มักจะต้องให้ลูกค้าชำระค่าบริการแบบสมัครสมาชิกรายเดือนหรือรายปี ประเภทแบ็คเอนด์นี้ใช้งานง่ายที่สุดและช่วยให้คุณตั้งค่าแบ็คเอนด์ได้ในไม่กี่คลิก
ข้อเสียของประเภทแบ็คเอนด์นี้คือคุณมักจะไม่พบ SaaS ที่ตรงกับความต้องการทั้งหมดของโปรเจกต์ของคุณ ในการสร้างแบ็คเอนด์สำหรับโลกแห่งความจริง คุณอาจจะต้องผสมผสานโซลูชัน SaaS หลาย ๆ รายการเข้าด้วยกัน
ตัวอย่างของ SaaS ได้แก่:
- WordPress (ระบบจัดการเนื้อหา)
- Mailchimp (ซอฟต์แวร์การจัดการและการตลาดผ่านอีเมล)
- Salesforce (ซอฟต์แวร์บริหารจัดการความสัมพันธ์ลูกค้า)
- Shopify (แพลตฟอร์มอีคอมเมิร์ซ)
- Dropbox (การโฮสต์ไฟล์)
Mobile Backend as a Service (MBaaS)
Backend as a Service (BaaS) เป็นแพลตฟอร์มที่ทำให้การพัฒนาด้านแบ็คเอนด์เป็นอัตโนมัติและดูแลโครงสร้างพื้นฐานบนคลาวด์
นอกจากนี้ยังมีฟีเจอร์ต่าง ๆ เช่น การจัดการผู้ใช้ การแจ้งเตือนทางอีเมล การแจ้งเตือนแบบ Push ฟังก์ชันโค้ดบนคลาวด์ การผสานรวมกับโซเชียลมีเดีย การจัดเก็บไฟล์ และการชำระเงิน
สิ่งนี้ช่วยให้นักพัฒนาสามารถมุ่งเน้นที่ธุรกิจหลักและการสร้างฟรอนต์เอนด์ได้โดยไม่ต้องกังวลเกี่ยวกับแบ็คเอนด์หรือโครงสร้างพื้นฐานพื้นฐาน ฟรอนต์เอนด์มักจะถูกพัฒนาผ่าน API และ SDK เฉพาะที่ผู้ขาย BaaS จัดให้ ซึ่งทำให้แอปมีความซับซ้อนน้อยลงและดูแลง่ายขึ้น
ข้อดีของการใช้ Backend as a Service ได้แก่ ความเร็วในการพัฒนาที่เร็วขึ้น ต้นทุนวิศวกรรมต่ำลง และมุ่งเน้นที่ธุรกิจหลัก
ตัวอย่างของ BaaS ได้แก่:
ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ BaaS และ MBaaS? ลองดูที่ BaaS คืออะไร?
แบ็คเอนด์ที่กำหนดเอง
แบ็คเอนด์ที่กำหนดเองเป็นตัวเลือกที่ทรงพลังและยืดหยุ่นที่สุด มันมอบการควบคุมเต็มรูปแบบและช่วยให้คุณสามารถนำคุณลักษณะที่ไม่สามารถใช้โซลูชัน SaaS หรือ MBaaS ไปใช้ได้
ข้อเสียที่ใหญ่ที่สุดคือค่าใช้จ่ายและเวลาที่ใช้ในการสร้าง ด้วยวิธีนี้ คุณจะต้องรับผิดชอบเต็มที่ต่อประสิทธิภาพและความปลอดภัยของแบ็คเอนด์ของคุณเอง
การสร้างแบ็คเอนด์ที่กำหนดเองมักจะใช้เวลาหลายเดือนและต้องการนักพัฒนาแบ็คเอนด์ที่มีทักษะหรือแม้กระทั่งทีมงานนักพัฒนาแบ็คเอนด์
เฟรมเวิร์กยอดนิยมสำหรับการสร้างแบ็คเอนด์ที่กำหนดเอง:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเฟรมเวิร์กแบ็คเอนด์ ดูที่ Top 10 backend frameworks
การคำนวณค่าใช้จ่ายในการสร้างแบ็คเอนด์สำหรับแอปมือถือมีค่าใช้จ่ายเท่าไหร่?
ไม่มีสูตรง่าย ๆ ในการคำนวณค่าใช้จ่ายของแบ็คเอนด์สำหรับแอปมือถือ ค่าใช้จ่ายจะแตกต่างกันไปตามความซับซ้อนของแอป จำนวนฟีเจอร์ ความสามารถในการปรับขยาย ประสิทธิภาพ และอื่น ๆ
ค่าใช้จ่าย SaaS
SaaS โดยทั่วไปเป็นตัวเลือกที่ถูกที่สุด SaaS มักมีรูปแบบการกำหนดราคาที่ตรงไปตรงมาพร้อมค่าบริการสมัครสมาชิกรายเดือนหรือรายปี ผู้ให้บริการ SaaS บางรายยังเสนอระดับราคาที่แตกต่างกันขึ้นอยู่กับขนาดธุรกิจของคุณ
ค่าใช้จ่าย MBaaS
การสร้างแบ็คเอนด์ด้วย MBaaS ถูกมากเมื่อเทียบกับการสร้างแบ็คเอนด์ที่กำหนดเอง มันช่วยลดต้นทุนการพัฒนาอย่างมากและไม่ต้องกังวลเกี่ยวกับโครงสร้างพื้นฐานหรือการจ้างทีมวิศวกรแบ็คเอนด์เฉพาะทาง ซึ่งช่วยประหยัดเงินได้มาก!
ผู้ให้บริการ MBaaS ส่วนใหญ่มาพร้อมระดับราคาที่แตกต่างกันขึ้นอยู่กับขนาดแอปของคุณ โดยใช้ MBaaS คุณสามารถคาดหวังได้ว่าจะต้องจ่ายเงินตั้งแต่ $15 ถึง $500 ต่อเดือน
ค่าใช้จ่ายแบ็คเอนด์ที่กำหนดเอง
การพัฒนาแบ็คเอนด์ที่กำหนดเองเป็นตัวเลือกที่มีค่าใช้จ่ายสูงที่สุด โดยการเลือกตัวเลือกนี้ คุณจะต้องรวบรวมทีมงานนักพัฒนาที่มีความสามารถและดูแลโครงสร้างพื้นฐานของแบ็คเอนด์ของคุณเอง
ราคาสำหรับการสร้างแบ็คเอนด์ที่กำหนดเองโดยทั่วไปจะอยู่ในช่วงตั้งแต่หลักพันดอลลาร์จนถึงหลายหมื่นดอลลาร์ ขึ้นอยู่กับความต้องการของโปรเจกต์
เนื่องจากการใช้แบ็คเอนด์ที่กำหนดเองเป็นงานที่ยาก บริษัทต่าง ๆ มักจะเอาท์ซอร์สให้กับบริษัทที่เชี่ยวชาญในการพัฒนาซอฟต์แวร์
วิธีการสร้างแบ็คเอนด์สำหรับแอปมือถือโดยใช้ MBaaS?
ในส่วนนี้ของบทแนะนำ เราจะมาดูวิธีพัฒนาแบ็คเอนด์สำหรับแอปมือถือโดยใช้ Back4app
Back4app คืออะไร?
Back4app เป็นหนึ่งในโซลูชัน Backend as a Service (BaaS) แบบเปิดแหล่งที่ดีที่สุดในตลาด มันมีคุณสมบัติและประโยชน์มากมายที่ช่วยให้นักพัฒนาสามารถสร้างแอปเว็บและมือถือได้อย่างรวดเร็ว
โดยใช้ Back4app คุณจะสามารถมุ่งเน้นที่ธุรกิจหลักแทนที่จะกังวลเกี่ยวกับแบ็คเอนด์หรือโครงสร้างพื้นฐานพื้นฐาน
โซลูชันนี้มาพร้อมกับแดชบอร์ดที่เต็มไปด้วยคุณสมบัติและใช้งานง่าย และ อินเทอร์เฟซบรรทัดคำสั่ง (CLI) นอกจากนี้พวกเขายังมี SDKs สำหรับเครื่องมือยอดนิยมทั้งหมดของคุณ เช่น Flutter, React Native, Node.js, Angular, Android, iOS และอื่น ๆ!
คุณสมบัติหลักของ Back4app ได้แก่:
- ฐานข้อมูลที่คล้ายกับสเปรดชีท
- REST และ GraphQL APIs
- Live Queries
- การตรวจสอบสิทธิ์ (รวมถึงการตรวจสอบสิทธิ์ทางโซเชียลมีเดีย)
- การโฮสต์ที่สามารถปรับขยายได้
- การแจ้งเตือนแบบ Push และทางอีเมล
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติของพวกเขา ให้ดูที่ Back4app Features
Back4app มีรูปแบบการกำหนดราคาที่เรียบง่ายและตรงไปตรงมาซึ่งเหมาะกับแอปทุกขนาด พวกเขามีแผนฟรีที่ใจบุญ (ไม่ต้องใช้บัตรเครดิต) ซึ่งเหมาะสำหรับการสร้างต้นแบบและทดสอบแพลตฟอร์ม ประกอบด้วย:
- 25k requests
- 250 MB ที่เก็บข้อมูล
- 1 GB การถ่ายโอนข้อมูล
- 1 GB ที่เก็บไฟล์
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดราคา Back4app ให้ดูที่ หน้ากำหนดราคา
แนะนำโปรเจกต์
เรากำลังจะสร้างแบ็คเอนด์สำหรับแอปข่าวง่าย ๆ แอปนี้จะอนุญาตให้บรรณาธิการสร้าง อัปเดต และลบบทความ เพื่อให้ง่ายต่อการจัดการ เราจะเปิดใช้งาน Back4app’s Admin App
เราจะดูแลความปลอดภัยของแบ็คเอนด์และแสดงวิธีใช้ REST API ของแบ็คเอนด์ แบ็คเอนด์นี้จะถูกสร้างขึ้นด้วยโค้ดที่น้อยที่สุด
ข้อกำหนดเบื้องต้น:
- ความเข้าใจพื้นฐานเกี่ยวกับ Backend as a Service (BaaS)
- ความเข้าใจพื้นฐานเกี่ยวกับฐานข้อมูล (และความสัมพันธ์ระหว่างโมเดล)
- ความเข้าใจพื้นฐานเกี่ยวกับคำร้องขอและการตอบสนอง HTTP
- เข้าใจไวยากรณ์ JSON
วัตถุประสงค์:
เมื่อสิ้นสุดบทแนะนำนี้ คุณจะสามารถ:
- สร้างและปรับใช้แบ็คเอนด์ง่าย ๆ บน Back4app
- สามารถจัดโครงสร้างฐานข้อมูลของคุณเองได้
- เข้าใจพื้นฐานของความปลอดภัยใน Parse Platform
- ทราบวิธีการดำเนินการ CRUD ผ่าน REST API
สร้างแอป
ขั้นตอนต่อไปนี้จะต้องใช้บัญชี Back4app หากคุณมีอยู่แล้ว เข้าสู่ระบบ หากยังไม่มีก็ไปที่ สมัครบัญชีฟรี
ในการทำงานกับ Back4app เราต้องสร้างแอปก่อน เมื่อคุณเข้าสู่แดชบอร์ด คุณจะเห็นรายชื่อแอปของคุณ คลิก “สร้างแอปใหม่” เพื่อสร้างแอปใหม่
ตั้งชื่อแอปตามที่ต้องการแล้วคลิก “ดำเนินการต่อ”
Back4app จะใช้เวลาสักครู่ในการเตรียมทุกอย่างที่จำเป็นสำหรับแอปของคุณ เช่น ฐานข้อมูล ชั้นแอปพลิเคชัน การปรับขนาด การสำรองข้อมูล & ความปลอดภัย
เมื่อแอปพลิเคชันของคุณพร้อมแล้ว คุณจะถูกเปลี่ยนเส้นทางไปยังแดชบอร์ดของแอป
ฐานข้อมูล
ในส่วนนี้ของบทแนะนำ เราจะสร้างโมเดลฐานข้อมูลทั้งหมดที่จำเป็น
ดังที่กล่าวในบทนำโปรเจกต์ เราจะสร้างแอปข่าวง่าย ๆ ฐานข้อมูลของเราจะประกอบด้วยโมเดลดังต่อไปนี้:
Article
แทนบทความข่าวArticleCategory
แทนหมวดหมู่ของบทความ (เช่น กีฬา บันเทิง) บทความหนึ่งสามารถอยู่ในหมวดหมู่เดียวได้ArticleTag
แทนแฮชแท็กของบทความ (เช่น เครื่องสำอาง สุขภาพ ความงาม) บทความหนึ่งสามารถมีแฮชแท็กได้หลายรายการ
โครงสร้างฐานข้อมูลนี้จะช่วยให้เราสามารถกรองบทความตามหมวดหมู่หรือแฮชแท็กได้ภายหลัง มาเริ่มวาดไดอะแกรมความสัมพันธ์ของเอนทิตี (ERD) เพื่อเข้าใจความสัมพันธ์ระหว่างโมเดลต่าง ๆ ได้ดียิ่งขึ้น:
ตอนนี้ มาเริ่มสร้างโมเดลกันเลย
เริ่มโดยการสร้างโมเดล ArticleCategory
บนมุมซ้ายบนของหน้าจอคลิกที่ “สร้างคลาส” ตั้งชื่อเป็น ArticleCategory
และเพิ่มฟิลด์ดังต่อไปนี้:
+-----------------------------+-------------+---------------+----------+ | Data type | Name | Default value | Required | +-----------------------------+-------------+---------------+----------+ | String | name | <leave blank> | yes | +-----------------------------+-------------+---------------+----------+ | String | description | <leave blank> | no | +-----------------------------+-------------+---------------+----------+ | Pointer -> User | author | <leave blank> | yes | +-----------------------------+-------------+---------------+----------+
จากนั้น สร้างคลาสอีกหนึ่งชื่อ ArticleTag
ด้วยรายละเอียดดังต่อไปนี้:
+-----------------------------+-------------+---------------+----------+ | Data type | Name | Default value | Required | +-----------------------------+-------------+---------------+----------+ | String | name | <leave blank> | yes | +-----------------------------+-------------+---------------+----------+ | Pointer -> User | author | <leave blank> | yes | +-----------------------------+-------------+---------------+----------+
สุดท้าย สร้างคลาสอีกหนึ่งชื่อ Article
โดยมีฟิลด์ดังต่อไปนี้:
+-----------------------------+-------------+---------------+----------+ | Data type | Name | Default value | Required | +-----------------------------+-------------+---------------+----------+ | String | title | <leave blank> | yes | +-----------------------------+-------------+---------------+----------+ | String | description | <leave blank> | no | +-----------------------------+-------------+---------------+----------+ | String | content | <leave blank> | yes | +-----------------------------+-------------+--------------+-----------+ | Pointer -> ArticleCategory | category | <leave blank> | no | +-----------------------------+-------------+---------------+----------+ | Relation -> ArticleTag | tags | <leave blank> | no | +-----------------------------+-------------+---------------+----------+ | Pointer -> User | author | <leave blank> | yes | +-----------------------------+-------------+---------------+----------+
เพียงเท่านี้ก็เสร็จสิ้นสำหรับสถาปัตยกรรมฐานข้อมูลแล้ว ตอนนี้มาสร้างข้อมูลตัวอย่างกัน
เพื่อให้ง่ายขึ้น ฉันได้ สร้างข้อมูลตัวอย่างบางส่วนที่คุณสามารถนำเข้าได้ ในการนำเข้าชุดข้อมูล ให้เลือกคลาสทางด้านซ้ายของหน้าจอ จากนั้นคลิกที่จุดสามจุดทางด้านขวาของหน้าจอ เลือก “นำเข้า” > “ข้อมูลคลาส” แล้วเลือกไฟล์ที่เหมาะสม
ในการดาวน์โหลดชุดข้อมูล JSON ให้ไปที่ repo back4app-mobile บน GitHub คลิกที่ “Code” แล้ว “Download ZIP”
นำเข้าไฟล์ JSON ด้วยลำดับดังนี้:
- User
- ArticleCategory
- ArticleTag
- Article
แผงผู้ดูแลระบบ
เพื่อให้ง่ายต่อการบริหารจัดการ เราจะเปิดใช้งาน Admin App แอปแอดมินเป็นเครื่องมือบนเว็บเบราว์เซอร์ที่ออกแบบมาเพื่อจัดการข้อมูลแอปโดยใช้ส่วนต่อประสานผู้ใช้ที่ไม่ใช่ทางเทคนิค
ไปที่แดชบอร์ดแอปของคุณ คลิกที่ “เพิ่มเติม” > “แอปผู้ดูแลระบบ” จากนั้นคลิกปุ่ม “เปิดใช้งานแอปผู้ดูแลระบบ”
เลือกชื่อผู้ใช้และรหัสผ่าน ฉันจะใช้:
Username: admin Password: complexpassword123
จากนั้นเลือกชื่อโดเมนที่คุณต้องการใช้เพื่อเข้าถึงแผงผู้ดูแลระบบของคุณ ฉันจะใช้:
mobile-backend.admin.back4app.com
เยี่ยมยอด ตอนนี้คุณสามารถเข้าสู่ระบบแดชบอร์ดผู้ดูแลระบบของคุณได้ที่โดเมนที่เลือก
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Back4app Admin App ให้ดูที่ เอกสารอย่างเป็นทางการ
การรักษาความปลอดภัยของแอป
เพื่อให้แอปของเราปลอดภัย เราต้องดำเนินการดังต่อไปนี้:
- ไม่อนุญาตให้ลูกค้าสร้างคลาสฐานข้อมูล
- ปรับเปลี่ยนการอนุญาตระดับคลาส (CLPs) ของโมเดล
User
- ปรับเปลี่ยน CLPs สำหรับทุกโมเดลที่เราสร้าง
ไม่อนุญาตให้ลูกค้าสร้างคลาส
ในการไม่อนุญาตให้ลูกค้าสร้างคลาส ไปที่ “การตั้งค่าแอป” > “การตั้งค่าเซิร์ฟเวอร์” > “การตั้งค่าหลัก” > “แก้ไข” เลื่อนลงไปด้านล่างของหน้า และยกเลิกการเลือก “อนุญาตให้สร้างคลาสโดยไคลเอนต์”
ปรับเปลี่ยน CLPs ของโมเดล User
เลือกโมเดล User
ของคุณภายในแท็บ “ฐานข้อมูล” คลิกที่จุดสามจุดทางด้านขวาของหน้าจอ > “ความปลอดภัย” > “การอนุญาตระดับคลาส” จากนั้นคลิกที่ไอคอนรูปเฟืองและเปลี่ยนเป็น “ขั้นสูง” ยกเลิกการเลือกทุกอย่าง ยกเว้น Get
และ Create
ดังนี้:
ปรับเปลี่ยน CLPs สำหรับทุกโมเดลที่เราสร้าง
ทำเช่นเดียวกันสำหรับโมเดลกำหนดเองทั้งหมดของคุณ (Article
, ArticleCategory
, และ ArticleTag
) ครั้งนี้ ปิดการใช้งานทุกอย่าง ยกเว้น Read
และ Find
สำหรับกลุ่ม Public
ดังนี้:
ด้วยวิธีนี้ ผู้ใช้ที่ไม่ได้รับการตรวจสอบสิทธิ์จะสามารถค้นหาและอ่านบทความได้เท่านั้น
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความปลอดภัย ดูที่ Parse Security
การทดสอบ API
ในส่วนนี้ของบทแนะนำ เราจะทดสอบ API ของเราโดยใช้คอนโซล API ในตัว
ในการเปิด REST API Console ไปที่แดชบอร์ดแอปของคุณ เลือก “คอนโซล” ในส่วน “API” จากนั้น “REST”
เนื่องจาก ACL/CLPs ของเรา ให้แน่ใจว่าได้ติ๊ก “Use Master Key?” สำหรับคำขอเพื่อให้สำเร็จ
Retrieve
สามารถดึงวัตถุออกมาได้ด้วยประเภทคำขอ GET
สำหรับ endpoint ให้ใช้ classes/<your_class>
เช่น classes/Article
และคลิกที่ปุ่ม “Send Query” ที่ด้านล่างของหน้า
ผลตอบรับจะมีลักษณะดังนี้:
{ "results": [ { "objectId": "oRwkdx7KgX", "title": "Voting 2022 has ended!", "description": "The voting for year 2022 has ended, the new major is...", "content": "Lorem ipsum dolor sit amet...", "category": { "__type": "Pointer", "className": "ArticleCategory", "objectId": "FYxzrBlCBC" }, "author": { "__type": "Pointer", "className": "_User", "objectId": "UZ76K07znv" }, "createdAt": "2022-12-13T09:09:04.845Z", "updatedAt": "2022-12-13T09:09:13.297Z", "tags": { "__type": "Relation", "className": "ArticleTag" } }, ... more results ... ] }
หากคุณต้องการดึงผลลัพธ์เฉพาะหรือกรอง queryset ดูที่ เอกสาร
Create
ในการสร้างอินสแตนซ์ของโมเดล ให้เลือกคำขอแบบ POST
และส่งไปที่ classes/<your_class>
เช่น classes/Article
โดยใช้คำขอ POST
คุณจะต้องระบุพารามิเตอร์ใน query ตัวอย่างเช่น:
{ "title": "Another article", "content": "This is another test article added via the API", "category": { "__type": "Pointer", "className" :"ArticleCategory", "objectId": "pPGdxPAxQA" }, "author": { "__type": "Pointer", "className": "_User", "objectId": "LFAf3yD8w0" } }
ผลตอบรับ:
{ "objectId": "yAbmJ0sRZT", "createdAt": "2022-12-12T17:18:32.922Z" }
Update
ในการอัปเดตโมเดล ให้เลือกประเภทคำขอเป็น PUT
และส่งไปที่ classes/<your_class>/<object_id>
เช่น classes/Article/oRwkdx7KgX
คุณจะต้องระบุพารามิเตอร์ query ที่มีข้อมูลที่ต้องการเปลี่ยนแปลง:
{"description": "Back4app is cool!"}
ผลตอบรับ:
{ "updatedAt": "2022-12-12T17:31:23.459Z" }
Delete
ในการลบอินสแตนซ์ของโมเดล ให้เลือกประเภทคำขอเป็น DELETE
และส่งไปที่ classes/<your_class>/<object_id>
เช่น classes/Article/oRwkdx7KgX
หากคำขอสำเร็จ จะมีการส่งกลับด้วยเนื้อหาว่าง
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำขอ REST กับ Back4app ให้ดูที่ เอกสารอ้างอิง API
ขั้นตอนต่อไปในอนาคต
แบ็คเอนด์สำหรับแอปมือถือของเราพร้อมใช้งานมากขึ้นแล้ว เพื่อต่อเชื่อมกับแอปมือถือของคุณ คุณจะต้องทำตามขั้นตอนดังนี้:
- รับ
Application ID
และClient key
จาก “การตั้งค่าแอป” > “ความปลอดภัย & คีย์” - ติดตั้ง ParseJS SDK ที่เหมาะสม (ตามแพลตฟอร์มของคุณ)
- ใช้ SDK เพื่อเชื่อมต่อกับ Back4app โดยใช้ข้อมูลรับรองของคุณ
- ใช้ SDK เพื่อส่งคำขอ
สำหรับคำแนะนำอย่างละเอียด ดูที่เอกสารของเรา:
บทสรุป
คำว่า ฟรอนต์เอนด์และแบ็คเอนด์ หมายถึงการแยกความรับผิดชอบระหว่างชั้นการนำเสนอและชั้นการเข้าถึงข้อมูล
ในปัจจุบันเกือบทุกแอปพลิเคชันมือถือมีแบ็คเอนด์ของตัวเองเนื่องจากข้อได้เปรียบมากมายที่แบ็คเอนด์มีให้ แบ็คเอนด์ช่วยให้แอปมือถือเก็บข้อมูลการวิเคราะห์ ส่งการแจ้งเตือนแบบ Push ตรวจสอบแอป เก็บรายงานการล่ม และอื่น ๆ
มีหลายวิธีในการสร้างแบ็คเอนด์ คุณสามารถ:
- ผสมผสานผลิตภัณฑ์ SaaS หลายตัว
- ใช้ Mobile Backend as a Service (MBaaS)
- สร้างแบ็คเอนด์ที่กำหนดเอง
การใช้ MBaaS เป็นตัวเลือกที่ยอดเยี่ยมเพราะถูกมากเมื่อเทียบกับแบ็คเอนด์ที่กำหนดเอง ในขณะเดียวกันก็มีความยืดหยุ่นมาก Back4app เป็นหนึ่งในผู้ให้บริการ MBaaS ที่ดีที่สุดที่ช่วยให้คุณสร้างแบ็คเอนด์ได้ภายในไม่กี่วัน — หรือแม้กระทั่งชั่วโมง