Quickstarters
Feature Overview
How to Build a Backend for Ruby?
32 นาที
บทนำ ในบทเรียนนี้ คุณจะได้ค้นพบ วิธีการสร้างแบ็คเอนด์สำหรับ ruby โดยใช้ back4app เราจะเดินผ่านฟีเจอร์ที่สำคัญของ back4app เช่น การจัดการฐานข้อมูล, ฟังก์ชัน cloud code, rest และ graphql apis, การตรวจสอบสิทธิ์ผู้ใช้, และการค้นหาแบบเรียลไทม์ (live queries) โดยการใช้ภาษาโปรแกรม ruby และ back4app คุณจะได้รับแบ็คเอนด์ที่ปลอดภัย ขยายขนาดได้ และมีความแข็งแกร่งซึ่งสามารถรวมเข้ากับระบบนิเวศการพัฒนาซอฟต์แวร์ของคุณได้อย่างง่ายดาย วิธีการนี้ช่วยประหยัดเวลาและความพยายามโดยการใช้แพลตฟอร์มเว็บโอเพนซอร์สที่สร้างขึ้นบน parse คุณจะเห็นวิธีการเร่งการพัฒนาโครงการด้วยหลักการพัฒนาที่รวดเร็ว ในระหว่างทาง คุณจะได้เรียนรู้การใช้ฟีเจอร์ความปลอดภัยขั้นสูง, การกำหนดตารางงานด้วย cloud jobs, และการตั้งค่าเว็บฮุคสำหรับการรวมภายนอก เมื่อสิ้นสุด คุณจะพร้อมที่จะสร้างโครงสร้างเฟรมเวิร์กแอปพลิเคชันเว็บและขยายมันสำหรับแอปพลิเคชันในผลิตภัณฑ์ คุณจะสามารถ รวม ruby กับ back4app สำหรับโมเดลข้อมูล, ลอจิกเชิงวัตถุ, และข้อมูลเรียลไทม์ ใช้ประโยชน์จากแนวทางปฏิบัติที่ดีที่สุดในกระบวนการพัฒนาแอปพลิเคชันในรูปแบบโมเดลวิวคอนโทรลเลอร์ (mvc) หรือสถาปัตยกรรมอื่นใดที่คุณต้องการ เสริมบทบาทของคุณในฐานะนักพัฒนาฝั่งหลังโดยการจัดการการตรวจสอบสิทธิ์ผู้ใช้ที่ปลอดภัย, ทริกเกอร์ cloud code, และอื่น ๆ ปรับปรุงแอปพลิเคชันเว็บของคุณให้ตรงตามความต้องการในโลกจริงโดยใช้ฟีเจอร์ที่ยืดหยุ่นของ back4app ข้อกำหนดเบื้องต้น บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งาน back4app https //www back4app com/docs/get started/new parse app ลงทะเบียนฟรีหากคุณยังไม่มีบัญชี สภาพแวดล้อม ruby ในเครื่อง คุณควรมี ruby https //www ruby lang org/en/documentation/installation/ ติดตั้งอยู่ โดยทั่วไปแนะนำให้ใช้ ruby 2 6 หรือสูงกว่า ความคุ้นเคยกับภาษาโปรแกรม ruby ความรู้พื้นฐานเกี่ยวกับไวยากรณ์ ruby, แนวคิดเชิงวัตถุ และการใช้งาน ภาษาโปรแกรมทั่วไป bundler (ไม่บังคับแต่แนะนำ) bundler ช่วยจัดการ gems สำหรับ เฟรมเวิร์กแอปพลิเคชันเว็บ หรือ โครงการพัฒนา เอกสารทางการของ bundler https //bundler io/ ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นทั้งหมดนี้ก่อนเริ่มต้น การสร้างโครงการ back4app ของคุณและเตรียมสภาพแวดล้อม ruby ของคุณจะช่วยให้คุณมีประสบการณ์การเรียนรู้ที่ราบรื่น ขั้นตอนที่ 1 – การสร้างโครงการใหม่บน back4app และการเชื่อมต่อ ทำไมขั้นตอนนี้ถึงสำคัญ โครงการ back4app ใหม่เป็นพื้นฐานสำหรับการ พัฒนาแอปพลิเคชัน มันเป็นที่เก็บฐานข้อมูลของคุณ จัดการการตรวจสอบสิทธิ์ผู้ใช้ และให้สภาพแวดล้อมสำหรับการรัน cloud code สร้างโครงการใหม่ เข้าสู่ระบบ back4app คลิก แอปใหม่ ในแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ (เช่น “ruby backend tutorial”) ติดตั้ง parse sdk และเชื่อมต่อกับ back4app parse sdk สำหรับ ruby ช่วยให้คุณโต้ตอบกับแบ็กเอนด์ของ back4app คุณสามารถติดตั้งได้ผ่าน gem ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล 1\ การสร้างโมเดลข้อมูล ใน back4app, คลาส เป็นเหมือนตารางฐานข้อมูล ตัวอย่างเช่น คุณสามารถสร้างคลาส “todo” สำหรับเก็บงาน คุณสามารถสร้างคลาสได้ทันทีจาก ruby หรือกำหนดไว้ในแดชบอร์ดเพื่อควบคุมอย่างละเอียด 2\ การสร้างโมเดลข้อมูลโดยใช้ ai agent เปิด ai agent ในแดชบอร์ดแอปของคุณ อธิบายโมเดลข้อมูลของคุณ ในภาษาธรรมดา (เช่น “แอป todo ที่มีฟิลด์ชื่อ, iscompleted”) ให้ ai agent สร้างสคีมาของคุณ โดยอัตโนมัติ 3\ การอ่านและเขียนข้อมูลโดยใช้ ruby (parse sdk) ด้านล่างนี้เป็นตัวอย่างง่ายๆ ของการสร้างระเบียนใหม่ในคลาส “todo” โดยใช้ ruby sdk require relative 'parse config' \# create a todo object todo = parse object new("todo") todo\["title"] = "buy groceries" todo\["iscompleted"] = false saved todo = todo save puts "todo saved with objectid #{saved todo\['objectid']}" \# query todos query = parse query new("todo") results = query get puts "fetched #{results size} todos " results each do |t| puts "title #{t\['title']}, completed #{t\['iscompleted']}" end 4\ การอ่านและเขียนข้อมูลโดยใช้ rest api คุณยังสามารถสร้างและดึงข้อมูลระเบียนโดยใช้ rest interface 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 5\ การอ่านและเขียนข้อมูลโดยใช้ graphql api back4app มีจุดสิ้นสุด graphql สำหรับ แอปพลิเคชันเว็บ mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6\ การทำงานกับ live queries (ตัวเลือก) เปิดใช้งาน live queries ในแดชบอร์ด back4app (การตั้งค่าเซิร์ฟเวอร์) และสมัครสมาชิกจากสคริปต์ ruby ของคุณหากสภาพแวดล้อมของคุณรองรับการเชื่อมต่อ websocket คุณยังสามารถใช้พวกเขาสำหรับการอัปเดตแบบเรียลไทม์ใน เฟรมเวิร์กแอปพลิเคชันเว็บ ที่รองรับการทำงานพร้อมกัน ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps 1\ ภาพรวม acls (access control lists) และ clps (class level permissions) ปกป้องข้อมูลของคุณใน รูปแบบเชิงวัตถุ acls ช่วยให้คุณตัดสินใจว่าใครสามารถอ่านหรือเขียนบันทึกแต่ละรายการ clps ช่วยให้คุณจัดการสิทธิ์สำหรับทั้งคลาส 2\ การตั้งค่าสิทธิ์ระดับคลาส (clps) และ acls ไปที่ ฐานข้อมูล ส่วนของแอปของคุณและเลือกคลาสของคุณ เช่น “todo ” ตั้งค่า clps ของคลาสของคุณภายใต้ “ความปลอดภัย” หรือ “สิทธิ์ระดับคลาส ” เพื่อกำหนด acls บนบันทึก owner = parse user current todo = parse object new("todo") acl = parse acl new(owner) acl public read = false acl public write = false todo acl = acl todo\["title"] = "private task" todo save นี่ทำให้แน่ใจว่าเฉพาะเจ้าของเท่านั้นที่สามารถอ่าน/เขียน todo นั้น ขั้นตอนที่ 4 – การเขียนฟังก์ชัน cloud code 1\ ทำไมต้องใช้ cloud code cloud code ช่วยฝังตรรกะทางธุรกิจและการตรวจสอบความถูกต้องลงในเซิร์ฟเวอร์โดยตรง เหมาะสำหรับการรับประกันความสมบูรณ์ของข้อมูลและการทำงานที่ไม่เปิดเผยต่อผู้ใช้ 2\ ฟังก์ชันตัวอย่าง ในไฟล์ main js (หรือไฟล์ที่คล้ายกัน) ใน back4app คุณสามารถกำหนดฟังก์ชัน cloud ได้ parse cloud define('calculatetextlength', (request) => { const { text } = request params; if (!text) { throw 'no text provided'; } return { length text length }; }); หมายเหตุ แม้ว่าแอปพลิเคชันหลักของเราจะใช้ ruby แต่ cloud code ใน parse ใช้ javascript เป็นพื้นฐาน นี่คือวิธีที่คุณฝังตรรกะด้านเซิร์ฟเวอร์ใน back4app 3\ การปรับใช้ back4app cli back4app dashboard คัดลอก/วางฟังก์ชันของคุณลงใน cloud code > functions และคลิก deploy 4\ โมดูล npm คุณสามารถติดตั้งโมดูล npm (เช่น axios) สำหรับสภาพแวดล้อม cloud code ของคุณ ตัวอย่างเช่น npm install axios ในไฟล์ main js , ให้เรียกใช้งานและทำการเรียก api ภายนอกตามที่ต้องการ ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ์ 1\ การตั้งค่าดashboard เปิดใช้งานการตรวจสอบสิทธิ์ผู้ใช้ใน การตั้งค่าแอป back4app ใช้ parse user สำหรับการจัดการผู้ใช้ 2\ ลงทะเบียน / เข้าสู่ระบบด้วย ruby require relative 'parse config' \# signing up a user user = parse user new({ username "alice", password "secret123", email "alice\@example com" }) begin user sign up puts "user signed up successfully" rescue => e puts "error #{e message}" end \# logging in a user logged in user = parse user login("alice", "secret123") puts "logged in as #{logged in user username}" 3\ การเข้าสู่ระบบด้วยโซเชียล เพื่อรวมการเข้าสู่ระบบด้วยโซเชียล (facebook, google, apple) โปรดดูที่ เอกสารการเข้าสู่ระบบด้วยโซเชียล https //www back4app com/docs/platform/sign in with apple รายละเอียดการดำเนินการจะแตกต่างกันไปตามผู้ให้บริการแต่ละราย ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ 1\ การตั้งค่าการจัดเก็บไฟล์ back4app จัดการการอัปโหลดไฟล์ผ่าน parse file วัตถุ ใน ruby file = parse file new("image png", file read("/path/to/image png")) saved file = file save puts "file saved at #{saved file url}" \# attach file to an object photo = parse object new("photo") photo\["imagefile"] = saved file photo save puts "photo object created with file reference " 2\ ตัวอย่าง ผู้ใช้สามารถอัปโหลดภาพ เอกสาร หรือไฟล์อื่น ๆ ได้ ดึง url เพื่อแสดงในส่วนหน้า (frontend) หรือบริการอื่น ๆ 3\ การพิจารณาด้านความปลอดภัย กำหนดค่าแอปของคุณเพื่อจำกัดการอัปโหลดไฟล์เฉพาะผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์หากจำเป็น ขั้นตอนที่ 7 – การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน 1\ ทำไมมันถึงสำคัญ การตรวจสอบอีเมลช่วยให้แน่ใจว่าอีเมลที่ใช้สำหรับบัญชีใหม่มีความถูกต้อง การรีเซ็ตรหัสผ่านช่วยให้ผู้ใช้ของคุณสามารถกู้คืนบัญชีของตนได้อย่างปลอดภัย 2\ การกำหนดค่าดashboard back4app เปิดใช้งาน การตรวจสอบอีเมล ตั้งค่าเทมเพลตที่กำหนดเองสำหรับการตรวจสอบและการรีเซ็ตรหัสผ่าน 3\ ตัวอย่างโค้ด จาก ruby คุณสามารถขอรีเซ็ตรหัสผ่านได้ 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 นี่จะส่งลิงก์รีเซ็ตรหัสผ่านไปยังอีเมลของผู้ใช้ ขั้นตอนที่ 8 – การกำหนดตารางงานด้วย cloud jobs 1\ cloud jobs ทำอะไร งาน cloud จะทำงานตามระยะเวลาที่กำหนด เช่น การทำความสะอาดข้อมูลเก่าหรือการส่งอีเมลสรุป 2\ ตัวอย่างงาน 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 `; }); กำหนดตารางเวลาไว้ที่ การตั้งค่าแอป > การตั้งค่าเซิร์ฟเวอร์ > งานพื้นหลัง ในแดชบอร์ด back4app ของคุณ ขั้นตอนที่ 9 – การรวม webhooks 1\ คำจำกัดความ webhooks ช่วยให้คุณส่งคำขอ http ไปยังบริการภายนอกเมื่อเกิดเหตุการณ์บางอย่างใน back4app นี่เป็นวิธีที่ดีในการเชื่อมโยงกับบริการของบุคคลที่สามหรือกระตุ้นงานใน ภาษาโปรแกรมอื่นๆ 2\ การกำหนดค่า ไปที่แดชบอร์ด back4app ของแอปของคุณ > เพิ่มเติม > webhooks , และเพิ่ม webhook ใหม่ด้วย url ของบริการภายนอกของคุณ 3\ ตัวอย่าง ส่งข้อมูลไปยัง stripe หรือ slack ทุกครั้งที่มีการสร้าง “todo” ใหม่ นอกจากนี้คุณยังสามารถกำหนดทริกเกอร์ใน cloud code และทำคำขอ http ภายในทริกเกอร์เหล่านั้น ขั้นตอนที่ 10 – การสำรวจแผงผู้ดูแล back4app 1\ จะหามันได้ที่ไหน ในแดชบอร์ดแอปของคุณ ให้คลิก เพิ่มเติม > แอปผู้ดูแล , จากนั้นเปิดใช้งานมัน 2\ ฟีเจอร์ อินเทอร์เฟซกราฟิกสำหรับการจัดการข้อมูลโดยไม่ต้องเขียนโค้ด เครื่องมือสำหรับการวิเคราะห์บันทึก การกำหนดเวลางานเบื้องหลัง และอื่น ๆ การควบคุมการเข้าถึงตามบทบาท ซึ่งช่วยให้คุณสามารถให้ผู้ใช้ที่ไม่ใช่เทคนิคจัดการเนื้อหาได้อย่างปลอดภัย บทสรุป คุณได้สร้างแบ็กเอนด์ที่ปลอดภัยและปรับขนาดได้สำหรับแอป ruby ของคุณบน back4app โดยใช้ภาษาโปรแกรม ruby เพื่อเชื่อมต่อกับ parse api กระบวนการพัฒนาของคุณตอนนี้รวมถึง ฐานข้อมูล ที่มีฟีเจอร์ความปลอดภัยขั้นสูง (acls, clps) การอัปเดตข้อมูลแบบเรียลไทม์ ผ่าน live queries cloud code ทริกเกอร์สำหรับตรรกะทางธุรกิจที่กำหนดเอง การตรวจสอบสิทธิ์ผู้ใช้ และการจัดการไฟล์ งานที่กำหนดเวลา ด้วย cloud jobs และ webhooks สำหรับบริการภายนอก แผงผู้ดูแล ที่ใช้งานง่ายสำหรับการจัดการข้อมูล ด้วยพื้นฐานนี้ คุณสามารถขยายแอปพลิเคชันเว็บหรือโครงการภาษาโปรแกรมอื่น ๆ เพื่อให้ตรงตามความต้องการในโลกจริง ไม่ว่าคุณจะเป็นนักพัฒนาระบบหลังบ้านที่มีประสบการณ์หรือเพิ่งเริ่มต้นกับ ruby back4app ก็มีแพลตฟอร์มที่ใช้วัตถุและใช้งานง่ายสำหรับการพัฒนาอย่างรวดเร็ว คุณสามารถรวม api หรือฟีเจอร์เพิ่มเติมได้ตามสบาย และสำรวจการปรับแต่งเพิ่มเติมเพื่อให้สอดคล้องกับรูปแบบโมเดลวิวคอนโทรลเลอร์ (mvc) หรือสไตล์สถาปัตยกรรมอื่น ๆ ขั้นตอนถัดไป ปรับปรุงสภาพแวดล้อมการผลิตของคุณ โดยการเพิ่มการแคชขั้นสูง การเข้าถึงตามบทบาท หรือการปรับแต่งประสิทธิภาพ เพิ่มความสัมพันธ์ที่ซับซ้อนมากขึ้น ระหว่างคลาสข้อมูลเพื่อขับเคลื่อนกรณีการใช้งานในโลกจริง สำรวจเอกสารทางการของ back4app สำหรับความปลอดภัย ข้อมูลเชิงลึกด้านประสิทธิภาพ และการวิเคราะห์ ทดลองใช้เฟรมเวิร์กเว็บโอเพนซอร์สอื่น ๆ เพื่อขยายฟีเจอร์ของแอปพลิเคชันของคุณ สนุกกับการสร้าง แอปพลิเคชันเว็บ ที่มีความแข็งแกร่งและฟีเจอร์มากมายด้วย ruby และ back4app!