สร้างแบ็คเอนด์สำหรับแอปมือถือด้วย Back4App

ในบทความนี้ คุณจะได้เรียนรู้ว่าแบ็คเอนด์สำหรับแอปมือถือคืออะไรและทุกอย่างที่คุณจำเป็นต้องทราบเพื่อสร้างแบ็คเอนด์ของคุณเอง

เราจะดูความแตกต่างระหว่างแบ็คเอนด์กับฟรอนต์เอนด์ ประเภทต่าง ๆ ของแบ็คเอนด์ เรียนรู้เกี่ยวกับฟังก์ชันการทำงานของแบ็คเอนด์มือถือและค่าใช้จ่ายในการพัฒนาแบ็คเอนด์

สุดท้าย เราจะเรียนรู้วิธีสร้างแบ็คเอนด์สำหรับแอปมือถือขั้นพื้นฐานบน Back4app หนึ่งในผู้ให้บริการ MBaaS ที่ดีที่สุด

Contents

ความแตกต่างระหว่างฟรอนต์เอนด์กับแบ็คเอนด์

คำว่า ฟรอนต์เอนด์และแบ็คเอนด์ หมายถึงการแยกความรับผิดชอบระหว่างชั้นการนำเสนอและชั้นการเข้าถึงข้อมูล

วิธีที่ง่ายที่สุดในการเข้าใจความแตกต่างของพวกมันคือการนึกภาพภูเขาน้ำแข็ง ฟรอนต์เอนด์อยู่เหนือระดับน้ำและคือทุกสิ่งที่ผู้ใช้มองเห็นและโต้ตอบได้ ในขณะที่แบ็คเอนด์คือส่วนของภูเขาน้ำแข็งที่อยู่ใต้น้ำ เป็นตรรกะพื้นฐานที่ขับเคลื่อนธุรกิจ

Frontend versus Backend visualization

ฟรอนต์เอนด์

ฟรอนต์เอนด์คือส่วนติดต่อผู้ใช้กราฟิกของเว็บไซต์ แอปมือถือ หรือไคลเอนต์ประเภทอื่นที่ผู้ใช้สามารถโต้ตอบได้ ฟรอนต์เอนด์รวมถึงทุกแง่มุมที่มองเห็นของแอปพลิเคชัน เช่น การออกแบบ เมนู ข้อความ รูปภาพ วิดีโอ เป็นต้น ในโปรเจกต์ส่วนใหญ่จะคิดเป็นประมาณ 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 ตรวจสอบแอป เก็บรายงานการล่ม และอื่น ๆ หากคุณต้องการประสบความสำเร็จ คุณน่าจะต้องการแบ็คเอนด์

ประเภทของแบ็คเอนด์มีอะไรบ้าง?

ขึ้นอยู่กับประเภทของแอปพลิเคชันของคุณ มีหลายประเภทของแบ็คเอนด์ที่คุณสามารถเลือกใช้ โดยทั่วไปแล้ว เราสามารถแบ่งออกเป็นสามกลุ่มตามระดับการแยกส่วน:

  1. Software as a Service (SaaS) หรือบริการบุคคลที่สาม
  2. Mobile Backend as a Service (MBaaS)
  3. แบ็คเอนด์ที่กำหนดเอง

มาดูกันว่าแต่ละแบบเป็นอย่างไรบ้าง

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 Create App

ตั้งชื่อแอปตามที่ต้องการแล้วคลิก “ดำเนินการต่อ”

Back4app จะใช้เวลาสักครู่ในการเตรียมทุกอย่างที่จำเป็นสำหรับแอปของคุณ เช่น ฐานข้อมูล ชั้นแอปพลิเคชัน การปรับขนาด การสำรองข้อมูล & ความปลอดภัย

เมื่อแอปพลิเคชันของคุณพร้อมแล้ว คุณจะถูกเปลี่ยนเส้นทางไปยังแดชบอร์ดของแอป

Back4app App Dashboard

ฐานข้อมูล

ในส่วนนี้ของบทแนะนำ เราจะสร้างโมเดลฐานข้อมูลทั้งหมดที่จำเป็น

ดังที่กล่าวในบทนำโปรเจกต์ เราจะสร้างแอปข่าวง่าย ๆ ฐานข้อมูลของเราจะประกอบด้วยโมเดลดังต่อไปนี้:

  • Article แทนบทความข่าว
  • ArticleCategory แทนหมวดหมู่ของบทความ (เช่น กีฬา บันเทิง) บทความหนึ่งสามารถอยู่ในหมวดหมู่เดียวได้
  • ArticleTag แทนแฮชแท็กของบทความ (เช่น เครื่องสำอาง สุขภาพ ความงาม) บทความหนึ่งสามารถมีแฮชแท็กได้หลายรายการ

โครงสร้างฐานข้อมูลนี้จะช่วยให้เราสามารถกรองบทความตามหมวดหมู่หรือแฮชแท็กได้ภายหลัง มาเริ่มวาดไดอะแกรมความสัมพันธ์ของเอนทิตี (ERD) เพื่อเข้าใจความสัมพันธ์ระหว่างโมเดลต่าง ๆ ได้ดียิ่งขึ้น:

Database Entity Relationship Diagram

ตอนนี้ มาเริ่มสร้างโมเดลกันเลย

เริ่มโดยการสร้างโมเดล 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 | +-----------------------------+-------------+---------------+----------+

เพียงเท่านี้ก็เสร็จสิ้นสำหรับสถาปัตยกรรมฐานข้อมูลแล้ว ตอนนี้มาสร้างข้อมูลตัวอย่างกัน

เพื่อให้ง่ายขึ้น ฉันได้ สร้างข้อมูลตัวอย่างบางส่วนที่คุณสามารถนำเข้าได้ ในการนำเข้าชุดข้อมูล ให้เลือกคลาสทางด้านซ้ายของหน้าจอ จากนั้นคลิกที่จุดสามจุดทางด้านขวาของหน้าจอ เลือก “นำเข้า” > “ข้อมูลคลาส” แล้วเลือกไฟล์ที่เหมาะสม

Back4app Data Import

ในการดาวน์โหลดชุดข้อมูล JSON ให้ไปที่ repo back4app-mobile บน GitHub คลิกที่ “Code” แล้ว “Download ZIP”

นำเข้าไฟล์ JSON ด้วยลำดับดังนี้:

  1. User
  2. ArticleCategory
  3. ArticleTag
  4. Article

แผงผู้ดูแลระบบ

เพื่อให้ง่ายต่อการบริหารจัดการ เราจะเปิดใช้งาน Admin App แอปแอดมินเป็นเครื่องมือบนเว็บเบราว์เซอร์ที่ออกแบบมาเพื่อจัดการข้อมูลแอปโดยใช้ส่วนต่อประสานผู้ใช้ที่ไม่ใช่ทางเทคนิค

ไปที่แดชบอร์ดแอปของคุณ คลิกที่ “เพิ่มเติม” > “แอปผู้ดูแลระบบ” จากนั้นคลิกปุ่ม “เปิดใช้งานแอปผู้ดูแลระบบ”

Back4app Enable Admin Panel

เลือกชื่อผู้ใช้และรหัสผ่าน ฉันจะใช้:

Username: admin Password: complexpassword123

จากนั้นเลือกชื่อโดเมนที่คุณต้องการใช้เพื่อเข้าถึงแผงผู้ดูแลระบบของคุณ ฉันจะใช้:

mobile-backend.admin.back4app.com

เยี่ยมยอด ตอนนี้คุณสามารถเข้าสู่ระบบแดชบอร์ดผู้ดูแลระบบของคุณได้ที่โดเมนที่เลือก

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Back4app Admin App ให้ดูที่ เอกสารอย่างเป็นทางการ

การรักษาความปลอดภัยของแอป

เพื่อให้แอปของเราปลอดภัย เราต้องดำเนินการดังต่อไปนี้:

  1. ไม่อนุญาตให้ลูกค้าสร้างคลาสฐานข้อมูล
  2. ปรับเปลี่ยนการอนุญาตระดับคลาส (CLPs) ของโมเดล User
  3. ปรับเปลี่ยน CLPs สำหรับทุกโมเดลที่เราสร้าง

ไม่อนุญาตให้ลูกค้าสร้างคลาส

ในการไม่อนุญาตให้ลูกค้าสร้างคลาส ไปที่ “การตั้งค่าแอป” > “การตั้งค่าเซิร์ฟเวอร์” > “การตั้งค่าหลัก” > “แก้ไข” เลื่อนลงไปด้านล่างของหน้า และยกเลิกการเลือก “อนุญาตให้สร้างคลาสโดยไคลเอนต์”

ปรับเปลี่ยน CLPs ของโมเดล User

เลือกโมเดล User ของคุณภายในแท็บ “ฐานข้อมูล” คลิกที่จุดสามจุดทางด้านขวาของหน้าจอ > “ความปลอดภัย” > “การอนุญาตระดับคลาส” จากนั้นคลิกที่ไอคอนรูปเฟืองและเปลี่ยนเป็น “ขั้นสูง” ยกเลิกการเลือกทุกอย่าง ยกเว้น Get และ Create ดังนี้:

Back4app User Model CLPs

ปรับเปลี่ยน CLPs สำหรับทุกโมเดลที่เราสร้าง

ทำเช่นเดียวกันสำหรับโมเดลกำหนดเองทั้งหมดของคุณ (Article, ArticleCategory, และ ArticleTag) ครั้งนี้ ปิดการใช้งานทุกอย่าง ยกเว้น Read และ Find สำหรับกลุ่ม Public ดังนี้:

Back4app Other Model CLPs

ด้วยวิธีนี้ ผู้ใช้ที่ไม่ได้รับการตรวจสอบสิทธิ์จะสามารถค้นหาและอ่านบทความได้เท่านั้น

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความปลอดภัย ดูที่ Parse Security

การทดสอบ API

ในส่วนนี้ของบทแนะนำ เราจะทดสอบ API ของเราโดยใช้คอนโซล API ในตัว

ในการเปิด REST API Console ไปที่แดชบอร์ดแอปของคุณ เลือก “คอนโซล” ในส่วน “API” จากนั้น “REST”

Back4app REST API Console

เนื่องจาก 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

ขั้นตอนต่อไปในอนาคต

แบ็คเอนด์สำหรับแอปมือถือของเราพร้อมใช้งานมากขึ้นแล้ว เพื่อต่อเชื่อมกับแอปมือถือของคุณ คุณจะต้องทำตามขั้นตอนดังนี้:

  1. รับ Application ID และ Client key จาก “การตั้งค่าแอป” > “ความปลอดภัย & คีย์”
  2. ติดตั้ง ParseJS SDK ที่เหมาะสม (ตามแพลตฟอร์มของคุณ)
  3. ใช้ SDK เพื่อเชื่อมต่อกับ Back4app โดยใช้ข้อมูลรับรองของคุณ
  4. ใช้ SDK เพื่อส่งคำขอ

สำหรับคำแนะนำอย่างละเอียด ดูที่เอกสารของเรา:

บทสรุป

คำว่า ฟรอนต์เอนด์และแบ็คเอนด์ หมายถึงการแยกความรับผิดชอบระหว่างชั้นการนำเสนอและชั้นการเข้าถึงข้อมูล

ในปัจจุบันเกือบทุกแอปพลิเคชันมือถือมีแบ็คเอนด์ของตัวเองเนื่องจากข้อได้เปรียบมากมายที่แบ็คเอนด์มีให้ แบ็คเอนด์ช่วยให้แอปมือถือเก็บข้อมูลการวิเคราะห์ ส่งการแจ้งเตือนแบบ Push ตรวจสอบแอป เก็บรายงานการล่ม และอื่น ๆ

มีหลายวิธีในการสร้างแบ็คเอนด์ คุณสามารถ:

  • ผสมผสานผลิตภัณฑ์ SaaS หลายตัว
  • ใช้ Mobile Backend as a Service (MBaaS)
  • สร้างแบ็คเอนด์ที่กำหนดเอง

การใช้ MBaaS เป็นตัวเลือกที่ยอดเยี่ยมเพราะถูกมากเมื่อเทียบกับแบ็คเอนด์ที่กำหนดเอง ในขณะเดียวกันก็มีความยืดหยุ่นมาก Back4app เป็นหนึ่งในผู้ให้บริการ MBaaS ที่ดีที่สุดที่ช่วยให้คุณสร้างแบ็คเอนด์ได้ภายในไม่กี่วัน — หรือแม้กระทั่งชั่วโมง


Leave a reply

Your email address will not be published.