Quickstarters
Feature Overview
How to Build a Backend for Objective-C?
37 นาที
บทนำ ในบทเรียนนี้ คุณจะได้เรียนรู้ วิธีการสร้างแบ็กเอนด์สำหรับ objective c โดยใช้ back4app เราจะเดินผ่านการรวมฟีเจอร์ที่จำเป็นของ back4app—เช่น การจัดการฐานข้อมูล, ฟังก์ชัน cloud code, rest และ graphql apis, การตรวจสอบสิทธิ์ผู้ใช้, และการค้นหาแบบเรียลไทม์—เพื่อสร้างแบ็กเอนด์ที่ปลอดภัย, ขยายขนาดได้, และแข็งแกร่งที่สื่อสารกับแอป ios ของคุณได้อย่างราบรื่น เราจะใช้ parse ios sdk ซึ่งเป็นโอเพนซอร์ส เพื่อจัดการความต้องการข้อมูลทั้งหมดของเรา คุณจะเห็นวิธีการลดเวลาและความพยายามในการกำหนดค่าเซิร์ฟเวอร์, การจัดเก็บ, และความปลอดภัยโดยการใช้ประโยชน์จากสภาพแวดล้อมที่ยืดหยุ่นของ back4app บทเรียนนี้จะแสดงตัวอย่างโค้ดใน objective c ดังนั้นคุณสามารถพิมพ์ข้อความที่สอดคล้องกับการทำงานใน xcode ของคุณได้ โดยในตอนท้าย คุณจะมีบล็อกการสร้างสำหรับแอปมือถือที่พร้อมสำหรับการผลิต หรือคุณสามารถปรับแต่งเพิ่มเติมให้เหมาะกับกรณีการใช้งานของคุณ ข้อกำหนดเบื้องต้น ในการทำบทเรียนนี้ให้เสร็จสมบูรณ์ คุณจะต้องมี บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งาน back4app https //www back4app com/docs/get started/new parse app หากคุณไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโครงการของคุณ สภาพแวดล้อมการพัฒนา objective c ตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดของ xcode ติดตั้งอยู่ ดาวน์โหลด xcode จาก mac app store https //apps apple com/us/app/xcode/id497799835 ความรู้เกี่ยวกับ cocoapods หรือ swift package manager (ไม่บังคับ แต่แนะนำ) คู่มือ swift package manager https //github com/parse community/parse sdk ios osx ความคุ้นเคยกับ objective c, พื้นฐานของแอป ios, หรือแนวคิดที่เกี่ยวข้อง เอกสาร objective c ของ apple https //developer apple com/library/archive/documentation/cocoa/conceptual/programmingwithobjectivec/introduction/introduction html ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นทั้งหมดก่อนที่คุณจะเริ่ม เพื่อให้การเดินทางของคุณเป็นไปอย่างราบรื่น ขั้นตอนที่ 1 – การสร้างโปรเจกต์ใหม่บน back4app และการเชื่อมต่อ ทำไมถึงเป็นขั้นตอนนี้? โปรเจกต์ back4app ใหม่เป็นพื้นฐานของแบ็กเอนด์ของคุณ มันให้สถานที่ในการจัดเก็บข้อมูลของคุณ รันฟังก์ชันคลาวด์ และจัดการความปลอดภัย มาลองเริ่มต้นด้วยการสร้างโปรเจกต์ back4app กันเถอะ การสร้างโปรเจกต์ใน back4app เข้าสู่ระบบบัญชี back4app ของคุณ คลิก “แอปใหม่” บนแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ (เช่น “objectivec backend tutorial”) และยืนยัน คุณจะเห็นแอปใหม่ของคุณในแดชบอร์ด back4app แอปนี้จะจัดการการตั้งค่าแบ็กเอนด์ทั้งหมดที่เรากำลังจะพูดถึง การติดตั้ง parse sdk สำหรับ ios (objective c) back4app ทำงานร่วมกับ parse ios sdk อย่างใกล้ชิด sdk นี้ช่วยให้การดำเนินการข้อมูล ฟีเจอร์เรียลไทม์ การตรวจสอบผู้ใช้ และอื่นๆ สำหรับแอป ios ของคุณเป็นไปอย่างราบรื่น ดึงคีย์ parse ของคุณ ในแดชบอร์ด back4app ของคุณ ให้ไปที่ การตั้งค่าแอป หรือ ความปลอดภัย & คีย์ เพื่อค้นหา application id และ client key url ของ parse server มักจะเป็น https //parseapi back4app com รวม parse โดยใช้ swift package manager หรือ cocoapods cocoapods pod 'parse' swift package manager เปิด xcode เลือก “file” > “add packages…” เพิ่มที่เก็บ https //github com/parse community/parse sdk ios osx ยืนยัน parse ในเป้าหมาย ios ของคุณ การเริ่มต้น parse ใน objective c เปิด appdelegate m และนำเข้ามอดูล parse @import parsecore; // or #import \<parse/parse h> \ (bool)application (uiapplication )application didfinishlaunchingwithoptions (nsdictionary )launchoptions { \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your application id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; }]]; return yes; } ด้วยสิ่งนี้ แอป objective c ของคุณเชื่อมต่อกับ back4app backend อย่างปลอดภัย คุณพร้อมที่จะอ่าน เขียน และจัดการข้อมูลบนเซิร์ฟเวอร์แล้ว ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล 1\ การสร้างโมเดลข้อมูล (schema) ใน back4app ข้อมูลจะอยู่ในคลาส—เหมือนตารางในฐานข้อมูล สมมติว่าเราต้องการคลาส “todo” ที่เรียบง่าย คุณสามารถสร้างมันขึ้นมาได้ด้วยตนเองใน ฐานข้อมูล ส่วนของแดชบอร์ด back4app เพิ่มฟิลด์เช่นชื่อ (string), iscompleted (boolean) และอื่น ๆ 2\ การสร้างโมเดลข้อมูลโดยใช้ ai agent back4app มี ai agent เพื่อช่วยสร้างสคีมา เปิด ai agent ในแดชบอร์ดแอปของคุณ อธิบายโมเดลข้อมูลของคุณ เป็นภาษาธรรมชาติ (เช่น “สร้างคลาส todo ใหม่ที่มีชื่อ, คำอธิบาย, และวันครบกำหนด ”) ให้ ai ตั้งค่าทุกอย่าง ให้คุณโดยอัตโนมัติ 3\ การอ่านและเขียนข้อมูลโดยใช้ sdk ด้วย objective c เราสามารถใช้ pfobject เพื่อจัดการการสร้างและการค้นหาข้อมูล ตัวอย่างเช่น \#import \<parse/parse h> // create a new todo item pfobject todo = \[pfobject objectwithclassname @"todo"]; \[todo setobject @"buy groceries" forkey @"title"]; \[todo setobject @no forkey @"iscompleted"]; \[todo saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"todo saved successfully!"); } else { nslog(@"error saving todo %@", error localizeddescription); } }]; // query all todos pfquery query = \[pfquery querywithclassname @"todo"]; \[query findobjectsinbackgroundwithblock ^(nsarray nullable objects, nserror nullable error) { if (!error) { for (pfobject item in objects) { nslog(@"todo %@", item\[@"title"]); } } }]; 4\ การอ่านและเขียนข้อมูลโดยใช้ rest หากคุณต้องการข้าม sdk 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 back4app มีอินเตอร์เฟซ graphql ด้วย mutation { createtodo(input { fields { title "wash the car", iscompleted false } }) { todo { objectid title iscompleted } } } 6\ การทำงานกับ live queries (ตัวเลือก) หากแอป ios ของคุณต้องการการอัปเดตแบบเรียลไทม์ เปิดใช้งาน live queries ภายใต้ การตั้งค่าเซิร์ฟเวอร์ ในแดชบอร์ด back4app กำหนดค่า parse ด้วย livequeryserverurl \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your app id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; configuration livequeryserverurl = @"wss\ //your subdomain b4a io"; }]]; จากนั้นสมัครสมาชิกเพื่อรับการอัปเดตแบบเรียลไทม์ในโค้ด objective c ของคุณ ซึ่งจะทำให้ ui ของคุณแสดงข้อมูลล่าสุดทันที ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps รายการควบคุมการเข้าถึง (acls) และการอนุญาตระดับคลาส (clps) back4app ใช้ acls และ clps เพื่อความปลอดภัยที่ละเอียดอ่อน clps จะใช้กับคลาสทั้งหมด (ตาราง) ในขณะที่ acls จะใช้กับวัตถุแต่ละรายการ การตั้งค่าการอนุญาตระดับคลาส ภายใต้ ฐานข้อมูล ส่วน เลือกคลาส (เช่น “todo”) คลิก การอนุญาตระดับคลาส ควบคุมว่าใครสามารถอ่าน เขียน หรือทำการค้นหาที่ระดับคลาส การกำหนดค่า acls acls เป็นระดับวัตถุ ตัวอย่างเช่น pfacl acl = \[pfacl aclwithuser \[pfuser currentuser]]; \[acl setpublicreadaccess\ no]; \[acl setpublicwriteaccess\ no]; todo acl = acl; \[todo saveinbackground]; โค้ดนี้จำกัดการอ่าน/เขียนเฉพาะผู้ใช้ปัจจุบันเท่านั้น ขั้นตอนที่ 4 – การเขียนฟังก์ชัน cloud code ทำไมต้องใช้ cloud code? cloud code มีประโยชน์สำหรับตรรกะฝั่งเซิร์ฟเวอร์—การจัดการทริกเกอร์ การตรวจสอบ หรือการทำงานเบื้องหลัง มันช่วยให้โค้ดของคุณซ่อนจากไคลเอนต์ เพิ่มความปลอดภัย ฟังก์ชันตัวอย่าง parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); ตัวอย่างนี้คำนวณความยาวของสตริงที่ให้โดยไคลเอนต์ การปรับใช้ ใช้ back4app cli https //www back4app com/docs/local development/parse cli หรือ cloud code > ฟังก์ชัน ในแดชบอร์ดเพื่อปรับใช้ main js ของคุณ การเรียกใช้ cloud code จาก objective c \[pfcloud callfunctioninbackground @"calculatetextlength" withparameters @{@"text" @"hello back4app"} block ^(id nullable result, nserror nullable error) { if (!error) { nsnumber len = result\[@"length"]; nslog(@"text length %@", len); } }]; ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ์ ผู้ใช้ parse คลาส pfuser ของ back4app จัดการการลงทะเบียน การเข้าสู่ระบบ และความปลอดภัย โดยค่าเริ่มต้น pfuser จะจัดการการแฮชรหัสผ่าน เซสชัน และฟิลด์ผู้ใช้ ลงทะเบียน pfuser user = \[pfuser user]; user username = @"alice"; user password = @"secret123"; user email = @"alice\@example com"; \[user signupinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"user signed up successfully!"); } else { nslog(@"sign up error %@", error localizeddescription); } }]; เข้าสู่ระบบ \[pfuser loginwithusernameinbackground @"alice" password @"secret123" block ^(pfuser nullable user, nserror nullable error) { if (user) { nslog(@"user logged in %@", user username); } else { nslog(@"login error %@", error localizeddescription); } }]; การเข้าสู่ระบบผ่านโซเชียล back4app รองรับ facebook , apple , google , ฯลฯ รวมแพลตฟอร์มเหล่านี้และเชื่อมโยงเซสชันผู้ใช้ตามนั้น ตรวจสอบ เอกสารการเข้าสู่ระบบผ่านโซเชียล https //www back4app com/docs/platform/sign in with apple ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ การอัปโหลดและการเรียกคืนไฟล์ คุณสามารถจัดเก็บภาพ เอกสาร หรือข้อมูลไบนารีอื่น ๆ โดยใช้ pffileobject nsdata imagedata = uiimagepngrepresentation(\[uiimage imagenamed @"localimage"]); pffileobject parsefile = \[pffileobject fileobjectwithname @"image png" data\ imagedata]; pfobject photo = \[pfobject objectwithclassname @"photo"]; \[photo setobject\ parsefile forkey @"imagefile"]; \[photo saveinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"file uploaded successfully"); } }]; เพื่อเรียกคืน pffileobject photofile = photo\[@"imagefile"]; \[photofile getdatainbackgroundwithblock ^(nsdata nullable data, nserror nullable error) { if (!error) { uiimage image = \[uiimage imagewithdata\ data]; // use the image in your ui } }]; ขั้นตอนที่ 7 – การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน ทำไมถึงสำคัญ? การตรวจสอบอีเมลช่วยให้มั่นใจในความถูกต้องของบัญชีผู้ใช้ การรีเซ็ตรหัสผ่านเสนอวิธีการที่ปลอดภัยหากผู้ใช้ลืมข้อมูลประจำตัวของตน การกำหนดค่าดashboard ไปที่ การตั้งค่าอีเมล ในแดชบอร์ด back4app ของคุณ เปิดใช้งาน การตรวจสอบอีเมล และ การรีเซ็ตรหัสผ่าน ตัวเลือก ปรับแต่งเทมเพลตอีเมลตามต้องการ การดำเนินการ หากคุณต้องการเรียกคืนรหัสผ่านด้วยตนเองในแอปของคุณ \[pfuser requestpasswordresetforemailinbackground @"alice\@example com" block ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"reset email sent!"); } else { nslog(@"error %@", error localizeddescription); } }]; ขั้นตอนที่ 8 – การกำหนดตารางงานด้วย cloud jobs cloud jobs คืออะไร? cloud jobs ช่วยอัตโนมัติในงานที่เกิดขึ้นเป็นประจำ เช่น การทำความสะอาดข้อมูลเก่า การสร้างรายงานประจำวัน หรือการส่งการแจ้งเตือนจำนวนมาก ตัวอย่างงานทำความสะอาดประจำวัน ใน main js parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); const cutoff = new date(date now() 30 24 60 60 1000); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); จากนั้นกำหนดตารางใน การตั้งค่าแอป > การตั้งค่าเซิร์ฟเวอร์ > งานพื้นหลัง คุณสามารถเลือกให้ทำงานทุกวันได้ เช่น ขั้นตอนที่ 9 – การรวม webhooks ภาพรวม webhooks ช่วยให้ back4app ส่งคำขอ http ไปยังบริการภายนอกเมื่อเกิดเหตุการณ์ เช่น การสร้างวัตถุ การกำหนดค่า ในแดชบอร์ด back4app ของคุณ > เพิ่มเติม > webhooks เพิ่ม จุดสิ้นสุดใหม่ (url) ตัดสินใจว่าเหตุการณ์ใดจะกระตุ้น webhook (เช่น หลังจากที่บันทึก todo) ขั้นตอนที่ 10 – สำรวจแผงผู้ดูแล back4app ภาพรวม แผงผู้ดูแล back4app admin panel เป็นอินเทอร์เฟซที่เรียบง่ายและมุ่งเน้นโมเดลที่ผู้มีส่วนได้ส่วนเสียที่ไม่ใช่เทคนิคสามารถใช้เพื่อทำการดำเนินการ crud โดยไม่ต้องเขียนโค้ด การเปิดใช้งาน ในแดชบอร์ดของคุณ ไปที่ เพิ่มเติม > แอปผู้ดูแล และเปิดใช้งานมัน หลังจากสร้างผู้ใช้ผู้ดูแลคนแรกของคุณแล้ว คุณสามารถตั้งค่าโดเมนย่อยที่กำหนดเองเพื่อเข้าถึงแผง แผงนี้สามารถทำให้การทำงานประจำวันง่ายขึ้น เช่น การแก้ไขบันทึก การดูบันทึก หรือการมอบหมายบทบาท โดยไม่ต้องลงลึกในฐานข้อมูลดิบ บทสรุป คุณได้เห็นแล้ว วิธีการสร้าง backend สำหรับ objective c โดยใช้ back4app ในบทแนะนำนี้ คุณ สร้างโปรเจกต์ back4app ใหม่ ตั้งค่าและอ่านจากฐานข้อมูลโดยใช้ parse ios sdk, rest, หรือ graphql เปิดใช้งานการอัปเดตแบบเรียลไทม์ด้วย live queries ใช้ความปลอดภัยด้วย acls และ clps ปรับใช้ cloud code สำหรับตรรกะฝั่งเซิร์ฟเวอร์ จัดการการตรวจสอบสิทธิ์ผู้ใช้, การจัดเก็บไฟล์, การตรวจสอบอีเมล, และการรีเซ็ตรหัสผ่าน กำหนดค่าหน้าที่กำหนดเวลาและ webhook สำรวจแผงผู้ดูแลระบบเพื่อการจัดการข้อมูลที่ง่าย พื้นฐานนี้ช่วยให้คุณสามารถขยายแอป ios ของคุณในขณะที่มุ่งเน้นไปที่ประสบการณ์ด้านหน้า ความร่วมมือระหว่าง objective c และ back4app เป็นวิธีที่พิสูจน์แล้วในการเร่งการพัฒนา ประหยัดเวลาและความพยายาม ขั้นตอนถัดไป ปรับปรุง backend ของคุณ ด้วยตรรกะที่กำหนดเองขั้นสูง, การแจ้งเตือนแบบพุช, หรือการวิเคราะห์ รวมบริการภายนอก หรือไลบรารีโอเพนซอร์สสำหรับการเข้าสังคม, การเรียกเก็บเงิน, หรือการส่งข้อความ ตรวจสอบเอกสาร back4app อย่างเป็นทางการ สำหรับเคล็ดลับการเพิ่มประสิทธิภาพ, แนวทางปฏิบัติที่ดีที่สุด, และบทแนะนำเชิงลึก สร้างตัวอย่างในโลกจริง เช่นแอปแชท, กระดานผู้นำเกม, หรือบริการตามตำแหน่งโดยใช้รูปแบบเหล่านี้ เราหวังว่าคุณจะพบว่าคู่มือนี้มีข้อมูลที่เป็นประโยชน์! การใช้ back4app และ parse ios sdk ช่วยให้คุณพัฒนาระบบที่แข็งแกร่งและปลอดภัยโดยไม่ต้องจัดการเซิร์ฟเวอร์มากเกินไป ทำให้คุณสามารถมุ่งเน้นไปที่การสร้างประสบการณ์มือถือที่ดีที่สุดของคุณ