Quickstarters
Feature Overview
How to Build a Backend for Play Framework?
34 นาที
บทนำ ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีการสร้างแบ็คเอนด์ที่สมบูรณ์สำหรับ play framework โดยใช้ back4app เราจะเดินผ่านฟีเจอร์ที่จำเป็นสำหรับแบ็คเอนด์เซิร์ฟเวอร์ รวมถึงการตั้งค่าคอนฟิก การจัดการฐานข้อมูล ฟังก์ชัน cloud code apis rest และ graphql การตรวจสอบสิทธิ์ผู้ใช้ การจัดเก็บไฟล์ และการค้นหาแบบเรียลไทม์ คุณจะเห็นว่า back4app ทำให้กระบวนการตั้งค่า ขยาย และบำรุงรักษาแบ็คเอนด์แอปพลิเคชันเว็บง่ายขึ้น ในขณะที่คุณสามารถมุ่งเน้นไปที่โค้ด play framework ของคุณ โดยการเรียนรู้วิธีการสร้างแบ็คเอนด์สำหรับ play framework ด้วย back4app คุณจะลดเวลาการพัฒนาและลดปัญหาการดำเนินงาน คุณยังจะเพิ่มฟีเจอร์ที่แข็งแกร่ง เช่น การเข้าสังคม การกำหนดตารางงาน (cloud jobs) และเว็บฮุก เมื่อคุณทำสิ่งนี้เสร็จ คุณสามารถขยายระบบให้เป็นโซลูชันที่มีคุณภาพระดับการผลิต โดยการรวมฟีเจอร์ที่ซับซ้อนมากขึ้นตามที่ต้องการ เมื่อคุณเสร็จสิ้น คุณจะมีแผนผังที่มั่นคงในการสร้างแอปพลิเคชันเว็บ play framework ที่สามารถขยายได้และปลอดภัย คุณจะพร้อมที่จะดำดิ่งลึกลงไปในการปรับปรุงประสิทธิภาพ การรวมระบบ หรือการปรับแต่งโหมดการพัฒนาเพื่อตอบสนองความต้องการในโลกจริง ข้อกำหนดเบื้องต้น ในการทำตามบทเรียนนี้ คุณจะต้องมี บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งาน back4app https //www back4app com/docs/get started/new parse app หากคุณไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโครงการของคุณ สภาพแวดล้อม play framework ที่ใช้งานได้ ตรวจสอบให้แน่ใจว่าคุณมี java 8+ https //adoptium net/ ติดตั้งแล้ว ติดตั้ง sbt https //www scala sbt org/download html หรือใช้ sbt ผ่าน ide ของคุณ https //www playframework com/documentation/latest/ide ความรู้พื้นฐานเกี่ยวกับ play framework ดูที่ เอกสาร play https //www playframework com/documentation/latest หากคุณต้องการทบทวนพื้นฐาน ความคุ้นเคยกับ rest หรือ graphql สิ่งนี้จะช่วยให้คุณโต้ตอบกับ back4app ได้ โดยเฉพาะหากคุณตัดสินใจไม่ใช้หรือไม่สามารถใช้ parse sdk ได้โดยตรง ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นเหล่านี้ก่อนที่คุณจะเริ่ม การตั้งค่าโครงการ back4app ของคุณและเตรียมสภาพแวดล้อม play framework ของคุณจะช่วยให้คุณติดตามได้อย่างราบรื่น ขั้นตอนที่ 1 – การสร้างโครงการใหม่บน back4app และการเชื่อมต่อ ทำไมคุณถึงต้องการโครงการ back4app ใหม่ โครงการ back4app ใหม่เป็นกระดูกสันหลังสำหรับแบ็กเอนด์ของคุณ เพราะมันจัดการข้อมูลของแอปพลิเคชัน การตรวจสอบสิทธิ์ และตรรกะคลาวด์ของคุณ ไม่ว่าคุณจะสร้างต้นแบบขนาดเล็กหรือแอปพลิเคชันเว็บขนาดใหญ่ การเชื่อมต่อแอป play framework ของคุณกับโครงการ back4app ใหม่ก็ทำได้ง่าย การสร้างโครงการ back4app เข้าสู่ระบบบัญชี back4app ของคุณ คลิก “new app” ในแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ , เช่น “play framework backend” เมื่อสร้างเสร็จแล้ว โครงการใหม่ของคุณจะปรากฏในแดชบอร์ด เชื่อมต่อกับ back4app back4app ใช้ parse server หากแอป play framework ของคุณมีแผนที่จะโต้ตอบกับ back4app ผ่าน parse java sdk คุณสามารถเพิ่มมันลงใน build sbt หากจำเป็น มิฉะนั้นคุณสามารถใช้ rest หรือ graphql endpoints ดึงคีย์ parse ของคุณ ในแดชบอร์ด back4app ของคุณ เปิด app settings หรือ security & keys เพื่อค้นหา application id , rest api key , javascript key (หากใช้การเรียกจากฝั่งหน้า), หรือ client key , พร้อมกับ server url (ปกติคือ https //parseapi back4app com ) การใช้ java/parse sdk (ตัวเลือก) หากคุณต้องการการรวมเซิร์ฟเวอร์ด้านตรงโดยใช้ parse sdk ให้เพิ่มการพึ่งพาใน build sbt librarydependencies += "com parse" % "parse" % "1 0 40" // example version จากนั้นในโค้ด play framework ของคุณ คุณสามารถเริ่มต้น parse ได้ object parseconfig { def init() unit = { parse initialize(new parse configuration builder("your app id") server("https //parseapi back4app com") clientkey("your client key") build() ) } } คุณอาจวางสิ่งนี้ใน global scala หรือเรียกใช้จากจุดเริ่มต้นที่เหมาะสม สิ่งนี้จะช่วยให้คุณสามารถโต้ตอบโดยตรงกับโครงการ back4app ของคุณ หากคุณต้องการ คุณสามารถใช้ rest หรือ graphql endpoints สำหรับการดำเนินการข้อมูล โดยเฉพาะหากคุณต้องการควบคุมคำขอ http ของคุณมากขึ้นหรือหากคุณกำลังสร้างไมโครเซอร์วิส ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล บริการจัดเก็บข้อมูลของ back4app รองรับประเภทข้อมูลที่หลากหลายและการสร้างสคีมาที่มีพลศาสตร์ ซึ่งช่วยให้คุณสามารถจัดเก็บข้อมูลของแอป play ของคุณได้อย่างง่ายดาย การสร้างโมเดลข้อมูล เปิดส่วน “ฐานข้อมูล” ในแดชบอร์ด back4app ของคุณ สร้างคลาสใหม่ (เช่น “todo”) และเพิ่มคอลัมน์ (เช่น title เป็น string, iscompleted เป็น boolean) บันทึก เพื่อสรุปสคีมาฐานข้อมูลของคุณ การสร้างโมเดลข้อมูลด้วย ai agent หากคุณต้องการกำหนดโครงสร้างข้อมูลของคุณอย่างรวดเร็ว เปิด ai agent ในแดชบอร์ดแอปของคุณ อธิบายโมเดลข้อมูลที่คุณต้องการ ด้วยภาษาธรรมดา (เช่น “สร้างโมเดล todo ที่ง่าย ”) ตัวแทนจะสร้างสคีมาให้คุณโดยอัตโนมัติ การอ่านและเขียนข้อมูลโดยใช้ parse sdk (ไม่บังคับ) หากคุณเลือกที่จะรวม parse java sdk ในแอป play framework ของคุณ คุณสามารถบันทึกและค้นหาข้อมูลได้ import com parse {parseobject, parsequery} object todoservice { def createtodo(title string, iscompleted boolean) either\[throwable, parseobject] = { try { val todo = new parseobject("todo") todo put("title", title) todo put("iscompleted", iscompleted) right(todo save()) } catch { case e throwable => left(e) } } def fetchtodos() either\[throwable, java util list\[parseobject]] = { try { val query = parsequery getquery("todo") val results = query find() right(results) } catch { case e throwable => left(e) } } } การอ่านและเขียนข้อมูลโดยใช้ rest คุณสามารถส่งคำขอ http จากตัวควบคุมหรือบริการใน play framework ของคุณ 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 การอ่านและเขียนข้อมูลโดยใช้ graphql back4app ยังมี api graphql mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } นี่สะดวกหากคุณกำลังสร้างไมโครเซอร์วิสหรืออยากได้ api ที่ยืดหยุ่นสำหรับลูกค้าฝั่งหน้า การทำงานกับ live queries หาก แอปพลิเคชันเว็บ ของคุณต้องการข้อมูลเรียลไทม์ ให้เปิดใช้งาน live queries เปิดใช้งาน live queries ในแดชบอร์ด back4app ภายใต้ การตั้งค่าเซิร์ฟเวอร์ ตั้งค่าการสมัครสมาชิก ในโค้ด หากใช้ parse sdk หรือโค้ดที่กำหนดเอง ให้แน่ใจว่าคุณได้กำหนดค่า livequeryserverurl สมัครสมาชิก เพื่อรับการเปลี่ยนแปลงสำหรับคลาสเช่น “todo ” ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps ภาพรวมของ acls และ clps back4app มี access control lists (acls) สำหรับความปลอดภัยระดับวัตถุและ class level permissions (clps) สำหรับการจำกัดที่กว้างขวาง สิ่งนี้ช่วยให้เซิร์ฟเวอร์ของคุณปลอดภัยและมั่นใจได้ว่ามีการดำเนินการที่ได้รับอนุญาตเท่านั้น class level permissions ใน ส่วนฐานข้อมูล ของแดชบอร์ด back4app ของคุณ เลือกคลาส (เช่น “todo”) เปิด clps เพื่อจำกัดการอ่าน/เขียนให้กับผู้ใช้ที่ได้รับการรับรอง บทบาท หรือสาธารณะ กำหนดค่าให้เหมาะสม (เช่น “ต้องการการรับรองตัวตน” สำหรับการเขียนใดๆ) acls acls ปกป้องวัตถุแต่ละรายการ ตัวอย่างเช่น คุณสามารถมั่นใจได้ว่าเฉพาะผู้ใช้ที่เฉพาะเจาะจงเท่านั้นที่สามารถอ่านหรือเขียนบันทึกเฉพาะได้ หากคุณกำลังใช้ parse sdk จากโค้ด scala import com parse {parseacl, parseuser, parseobject} def createprivatetodo(title string, owner parseuser) parseobject = { val todo = new parseobject("todo") todo put("title", title) val acl = new parseacl(owner) acl setpublicreadaccess(false) acl setpublicwriteaccess(false) todo setacl(acl) todo save() todo } ขั้นตอนที่ 4 – การเขียนฟังก์ชัน cloud code ทำไมต้องใช้ cloud code cloud code ช่วยให้คุณสามารถรันลอจิกที่กำหนดเองบนเซิร์ฟเวอร์ของ back4app เพิ่มกฎทางธุรกิจหรือการตรวจสอบก่อนหรือหลังการทำธุรกรรมข้อมูล คุณจะไม่ต้องจัดการการจัดเตรียมเซิร์ฟเวอร์ของคุณเองหรือการรีสตาร์ทโหมดพัฒนาเพื่อดำเนินการฟังก์ชันดังกล่าว ฟังก์ชันตัวอย่าง // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); คุณสามารถเรียกใช้สิ่งนี้จากแอป play ของคุณผ่าน rest, graphql หรือหากใช้ parse sdk โดยตรง การปรับใช้ ใช้ back4app cli หรือแดชบอร์ด ติดตั้ง cli (ตัวอย่าง linux/macos) กำหนดค่าคีย์บัญชี ปรับใช้ หรือ ปรับใช้ผ่านแดชบอร์ด โดยการวางฟังก์ชันของคุณใน cloud code > functions และกด “deploy” การใช้โมดูล npm cloud code รองรับโมดูล npm ตัวอย่างเช่น หากคุณต้องการไคลเอนต์ http เช่น axios const axios = require('axios'); parse cloud define('fetchdata', async (req) => { const response = await axios get(req params url); return response data; }); ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ์ การเปิดใช้งานการตรวจสอบสิทธิ์ผู้ใช้ back4app ใช้ parse user คลาสสำหรับการลงทะเบียน, การเข้าสู่ระบบ, และการจัดการเซสชัน ในการ ตั้งค่าคอนฟิก , ให้แน่ใจว่าได้เปิดใช้งาน “การตรวจสอบอีเมล” และ “การรีเซ็ตรหัสผ่าน” หากต้องการ ตัวอย่างโค้ด (parse sdk) import com parse {parseuser} object authservice { def signupuser(username string, password string, email string) either\[throwable, parseuser] = { try { val user = new parseuser() user setusername(username) user setpassword(password) user setemail(email) right(user signup()) } catch { case e throwable => left(e) } } def loginuser(username string, password string) either\[throwable, parseuser] = { try { right(parseuser login(username, password)) } catch { case e throwable => left(e) } } } การเข้าสู่ระบบด้วยโซเชียล หากคุณต้องการการเข้าสู่ระบบด้วยโซเชียล (google, apple, หรือ facebook) ให้กำหนดค่าในแดชบอร์ด back4app ของคุณ parse มีวิธีการใช้งานหรือคุณสามารถพึ่งพากระบวนการ oauth มาตรฐาน ขึ้นอยู่กับความต้องการและวิธีการของคุณ ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ back4app เก็บไฟล์ผ่าน parse file จาก play framework คุณสามารถอัปโหลดด้วย rest หรือ parse sdk // example with parse sdk import com parse {parsefile, parseobject} import java nio file {files, paths} def uploadimage(filepath string) either\[throwable, string] = { try { val data = files readallbytes(paths get(filepath)) val parsefile = new parsefile("myimage jpg", data) parsefile save() right(parsefile geturl) } catch { case e throwable => left(e) } } ข้อพิจารณาด้านความปลอดภัย คุณสามารถกำหนดสิทธิ์การอัปโหลดไฟล์ (เปิดใช้งานสำหรับสาธารณะ, ไม่ระบุชื่อ, หรือผู้ใช้ที่ได้รับการรับรอง) ในการตั้งค่าเซิร์ฟเวอร์ back4app ขั้นตอนที่ 7 – การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน ไปที่การตั้งค่าอีเมล ในแดชบอร์ด back4app เปิดใช้งานการตรวจสอบอีเมล และตั้งค่าเทมเพลตอีเมลสำหรับการรีเซ็ตรหัสผ่าน ในแอป play ของคุณ คุณสามารถเรียกใช้ 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" "user\@example com"}' \\ https //parseapi back4app com/requestpasswordreset นี่จะกระตุ้นให้ back4app ส่งคำแนะนำการรีเซ็ตรหัสผ่านไปยังอีเมลของผู้ใช้ ขั้นตอนที่ 8 – การกำหนดตารางงานด้วย cloud jobs cloud jobs หากคุณต้องการ เริ่มงาน สำหรับการทำงานเบื้องหลัง (เช่น การทำความสะอาดข้อมูลหรือการสร้างรายงาน) คุณสามารถกำหนดตาราง cloud jobs บน back4app // 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); } }); การกำหนดตาราง นำไปใช้ โค้ด cloud ของคุณ ใน การตั้งค่าแอป > การตั้งค่าเซิร์ฟเวอร์ > งานเบื้องหลัง , กำหนดตารางงานให้ทำงานทุกวัน รายสัปดาห์ หรือเมื่อจำเป็น ขั้นตอนที่ 9 – การรวม webhooks หากคุณต้องการแจ้งบริการภายนอกเมื่อใดก็ตามที่ข้อมูลเปลี่ยนแปลง ให้ตั้งค่า webhooks ใน back4app ไปที่ more > webhooks ในแดชบอร์ด back4app ของคุณ เพิ่ม webhook พร้อม endpoint (เช่น slack หรือ stripe) เลือกทริกเกอร์ เช่น “บันทึกใหม่ในคลาส todo ” คุณยังสามารถสร้าง webhooks ในทริกเกอร์ cloud code โดยทำการร้องขอ http โดยตรงไปยังบริการของบุคคลที่สาม ขั้นตอนที่ 10 – การสำรวจแผงผู้ดูแล back4app การ back4app admin app เป็นอินเทอร์เฟซที่ใช้งานง่ายสำหรับการจัดการข้อมูลและบันทึก ผู้ใช้ที่ไม่ใช่เทคนิคสามารถจัดการการดำเนินการ crud ได้โดยไม่ต้องลงลึกในโค้ด การเปิดใช้งาน admin app ไปที่ app dashboard > more > admin app เปิดใช้งาน และสร้างผู้ใช้แอดมิน เลือกซับโดเมน เพื่อการเข้าถึงที่สะดวก เมื่อเข้าสู่ระบบแล้ว คุณสามารถจัดการข้อมูลได้โดยไม่ต้องยุ่งเกี่ยวกับแดชบอร์ดระดับต่ำหรือเครื่องมือ cli บทสรุป ขอแสดงความยินดี! คุณได้เรียนรู้ วิธีสร้าง backend สำหรับ play framework โดยใช้บริการของ back4app ในระหว่างการสอนนี้ คุณได้ สร้าง backend ที่ปลอดภัย สำหรับแอป play framework บน back4app ตั้งค่าระบบ ฐานข้อมูล , รวมถึงการออกแบบสคีมา ความสัมพันธ์ และการค้นหาข้อมูลแบบเรียลไทม์ ใช้ acls และ clps สำหรับการเข้าถึงข้อมูลอย่างปลอดภัย เขียน cloud code สำหรับตรรกะที่กำหนดเอง ทริกเกอร์ และการรวมระบบภายนอก กำหนดค่าการตรวจสอบสิทธิ์ผู้ใช้ , การเข้าสู่ระบบผ่านโซเชียล และการรีเซ็ตรหัสผ่าน จัดการการอัปโหลดไฟล์ และเพิ่มความปลอดภัยของไฟล์ตามต้องการ กำหนดตารางงานพื้นหลังด้วย cloud jobs รวมเข้ากับบริการของบุคคลที่สามผ่าน webhooks สำรวจ back4app admin panel สำหรับการจัดการข้อมูลที่มีประสิทธิภาพ ด้วยเครื่องมือเหล่านี้ คุณสามารถปรับแต่งโหมดการพัฒนา ขยายตามต้องการ และสร้างแอปพลิเคชันเว็บที่แข็งแกร่งบน play framework ยอมรับการรวมระบบเพิ่มเติม การปรับแต่งประสิทธิภาพ และมาตรการความปลอดภัยขั้นสูงเพื่อยกระดับ backend เซิร์ฟเวอร์ของคุณ ขั้นตอนถัดไป ปรับปรุง การตั้งค่าการผลิตของคุณด้วยการแคช, การบันทึก, หรือเครื่องมือการตรวจสอบ สำรวจความปลอดภัยขั้นสูง ด้วยการควบคุมการเข้าถึงตามบทบาทหรือการตั้งค่าแบบไม่มีความเชื่อใจ รวมเกตเวย์การชำระเงิน หรือ api ของบุคคลที่สามอื่น ๆ สำหรับการค้า หรือการวิเคราะห์ ตรวจสอบ เอกสารทางการของ back4app สำหรับข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพและการแก้ไขปัญหา ตรวจสอบ บทเรียนเพิ่มเติมเกี่ยวกับแอปแชทแบบเรียลไทม์, โซลูชัน iot, หรือบริการตามตำแหน่ง — หลายรายการที่สร้างขึ้นจากเทคนิคในคู่มือนี้