Quickstarters
Feature Overview
How to Build a Backend for Elm?
43 นาที
บทนำ ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีการสร้างแบ็คเอนด์ที่สมบูรณ์สำหรับแอปพลิเคชัน elm โดยใช้ back4app เราจะเดินผ่านการรวมฟีเจอร์ที่สำคัญของ back4app – เช่น การจัดการฐานข้อมูล, ฟังก์ชัน cloud code, rest และ graphql apis, การตรวจสอบสิทธิ์ผู้ใช้, และการสอบถามแบบเรียลไทม์ (live queries) – เพื่อสร้างแบ็คเอนด์ที่ปลอดภัย, ขยายขนาดได้, และแข็งแกร่งที่สื่อสารกับฟรอนต์เอนด์ elm ของคุณได้อย่างราบรื่น คุณจะเห็นว่าการตั้งค่าอย่างรวดเร็วและสภาพแวดล้อมที่ใช้งานง่ายของ back4app สามารถลดเวลาและความพยายามได้อย่างมากเมื่อเปรียบเทียบกับการกำหนดค่าเซิร์ฟเวอร์และฐานข้อมูลด้วยตนเอง ในระหว่างทาง คุณจะได้รับประสบการณ์จริงกับฟังก์ชันการทำงานที่สำคัญ รวมถึงฟีเจอร์ความปลอดภัยขั้นสูง, การกำหนดตารางงานด้วย cloud jobs, และการตั้งค่าเว็บฮุกสำหรับการรวมภายนอก เมื่อสิ้นสุดการสอนนี้ คุณจะพร้อมที่จะพัฒนาการตั้งค่าพื้นฐานนี้ให้เป็นแอปพลิเคชันที่พร้อมสำหรับการผลิต หรือรวมตรรกะที่กำหนดเองและ api ของบุคคลที่สามได้อย่างง่ายดายตามที่ต้องการ ข้อกำหนดเบื้องต้น ในการทำตามการสอนนี้ คุณจะต้องมี บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งานกับ back4app https //www back4app com/docs/get started/new parse app หากคุณไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโครงการของคุณ สภาพแวดล้อมการพัฒนา elm พื้นฐาน คุณสามารถตั้งค่านี้ได้โดย ติดตั้ง elm https //guide elm lang org/install/ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง elm (0 19 หรือสูงกว่า) บนเครื่องของคุณ ความคุ้นเคยกับ elm เอกสารทางการของ elm https //guide elm lang org/ หากคุณเป็นมือใหม่ใน elm ให้ตรวจสอบเอกสารทางการหรือการสอนสำหรับผู้เริ่มต้นก่อนเริ่ม ไลบรารีการร้องขอ http หรือวิธีการ graphql สำหรับ elm เราจะใช้การเรียก rest และ graphql จาก elm เนื่องจากไม่มี sdk elm ของ parse อย่างเป็นทางการ ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า elm/http https //package elm lang org/packages/elm/http/latest/ และหากจำเป็น ให้ตั้งค่าไลบรารี graphql ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นทั้งหมดนี้ก่อนที่คุณจะเริ่ม การตั้งค่าโครงการ back4app ของคุณและเตรียมสภาพแวดล้อม elm ในเครื่องของคุณจะช่วยให้คุณติดตามได้ง่ายขึ้น ขั้นตอนที่ 1 – การตั้งค่าโครงการ back4app สร้างโปรเจกต์ใหม่ ขั้นตอนแรกในการสร้างแบ็กเอนด์ elm ของคุณบน back4app คือการสร้างโปรเจกต์ใหม่ หากคุณยังไม่ได้สร้าง โปรดทำตามขั้นตอนเหล่านี้ เข้าสู่ระบบบัญชี back4app ของคุณ คลิกที่ปุ่ม “new app” ในแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ (เช่น “elm backend tutorial”) เมื่อโปรเจกต์ถูกสร้างขึ้น คุณจะเห็นมันปรากฏในแดชบอร์ด back4app ของคุณ โปรเจกต์นี้จะเป็นพื้นฐานสำหรับการตั้งค่าแบ็กเอนด์ทั้งหมดที่กล่าวถึงในบทเรียนนี้ เชื่อมต่อกับ back4app จาก elm back4app ใช้แพลตฟอร์ม parse ในการจัดการข้อมูลของคุณ ให้ฟีเจอร์เรียลไทม์ จัดการการตรวจสอบสิทธิ์ผู้ใช้ และอื่นๆ เนื่องจากไม่มี sdk elm parse อย่างเป็นทางการ เราจะใช้ rest หรือ graphql ในการเรียกจากแอป elm ของเราเพื่อติดต่อกับแบ็กเอนด์ back4app ดึงคีย์ parse ของคุณ ในแดชบอร์ด back4app ของคุณ ให้ไปที่ส่วน “app settings” หรือ “security & keys” ของแอปของคุณเพื่อค้นหา application id , rest api key , และ graphql endpoint คุณจะพบ parse server url (มักจะเป็น https //parseapi back4app com ) จาก elm คุณสามารถเก็บข้อมูลรับรองเหล่านี้ในไฟล์การกำหนดค่าหรือโมดูล ตัวอย่างเช่น src/config elm module config exposing (applicationid, restapikey, serverurl, graphqlendpoint) applicationid string applicationid = "your application id" restapikey string restapikey = "your rest api key" serverurl string serverurl = "https //parseapi back4app com" graphqlendpoint string graphqlendpoint = "https //parseapi back4app com/graphql" คุณจะใช้ค่าต่างๆ เหล่านี้เมื่อใดก็ตามที่คุณทำการร้องขอ http ไปยัง back4app จาก elm โดยการทำขั้นตอนนี้ให้เสร็จสิ้น คุณได้สร้างวิธีการเชื่อมต่อด้านหน้า elm ของคุณกับด้านหลัง back4app อย่างปลอดภัยแล้ว ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล การบันทึกและการค้นหาข้อมูล เมื่อคุณตั้งค่าโปรเจกต์ back4app ของคุณเสร็จแล้ว คุณสามารถเริ่มบันทึกและเรียกข้อมูลผ่าน rest หรือ graphql จาก elm ได้แล้ว สำหรับตัวอย่างง่ายๆ เราจะแสดงวิธีการสร้างและดึง todo รายการ การใช้ rest จาก elm เราจะใช้ elm/http https //package elm lang org/packages/elm/http/latest/ เพื่อทำการร้องขอ rest นี่คือตัวอย่างที่เรียบง่ายเพื่อ สร้าง รายการ todo src/todoapi elm module todoapi exposing (createtodo, fetchtodos) import config exposing (applicationid, restapikey, serverurl) import http import json decode as decode import json encode as encode \ a simplified representation of a todo type alias todo = { objectid string , title string , iscompleted bool } \ encoder for creating a todo createtodoencoder string > bool > encode value createtodoencoder title iscompleted = encode object \[ ( "title", encode string title ) , ( "iscompleted", encode bool iscompleted ) ] \ decoder for todo tododecoder decode decoder todo tododecoder = decode map3 todo (decode field "objectid" decode string) (decode field "title" decode string) (decode field "iscompleted" decode bool) createtodo string > bool > http request todo createtodo title iscompleted = http request { method = "post" , headers = \[ http header "x parse application id" applicationid , http header "x parse rest api key" restapikey , http header "content type" "application/json" ] , url = serverurl ++ "/classes/todo" , body = http jsonbody (createtodoencoder title iscompleted) , expect = http expectjson tododecoder , timeout = nothing , tracker = nothing } fetchtodos http request (list todo) fetchtodos = http request { method = "get" , headers = \[ http header "x parse application id" applicationid , http header "x parse rest api key" restapikey ] , url = serverurl ++ "/classes/todo" , body = http emptybody , expect = http expectjson (decode field "results" (decode list tododecoder)) , timeout = nothing , tracker = nothing } คุณสามารถเรียกใช้ createtodo หรือ fetchtodos ในฟังก์ชันอัปเดตของ elm ของคุณ จัดการกับ http การตอบกลับ และรวมข้อมูลเข้ากับโมเดลของแอปพลิเคชันของคุณ การใช้ rest โดยตรง (ตัวอย่างใน curl) หากคุณต้องการทดสอบหรือทำการเรียกอย่างรวดเร็วภายนอก elm คุณสามารถใช้ curl 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 ยังมีอินเตอร์เฟซ graphql ให้บริการ ด้านล่างนี้คือตัวอย่างการเปลี่ยนแปลง graphql สำหรับการสร้าง todo mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } ใน elm คุณสามารถใช้ไลบรารี graphql หรือสร้างคำขอ http ของคุณเองเพื่อส่งการเปลี่ยนแปลงและการค้นหาเหล่านี้ ซึ่งคล้ายกับวิธีที่เราใช้ elm/http ข้างต้น การออกแบบสคีมาและประเภทข้อมูล ตามค่าเริ่มต้น parse อนุญาตให้ สร้างสคีมาแบบทันที , แต่คุณยังสามารถกำหนดคลาสและประเภทข้อมูลของคุณในแดชบอร์ด back4app เพื่อควบคุมมากขึ้น ไปที่ส่วน “database” ในแดชบอร์ด back4app ของคุณ สร้างคลาสใหม่ (เช่น “todo”) และเพิ่มคอลัมน์ที่เกี่ยวข้อง เช่น ชื่อ (string) และ iscompleted (boolean) back4app ยังรองรับประเภทข้อมูลต่างๆ string , number , boolean , object , date , file , pointer , array , relation , geopoint , และ polygon คุณสามารถเลือกประเภทที่เหมาะสมสำหรับแต่ละฟิลด์หรือให้ parse สร้างคอลัมน์เหล่านี้โดยอัตโนมัติเมื่อคุณบันทึกวัตถุจากแอป elm ของคุณครั้งแรกโดยใช้วิธี rest หรือ graphql back4app มี ai agent ที่สามารถช่วยคุณออกแบบโมเดลข้อมูลของคุณ เปิด ai ตัวแทน จากแดชบอร์ดแอปของคุณหรือในเมนู อธิบายโมเดลข้อมูลของคุณ ด้วยภาษาที่เข้าใจง่าย (เช่น “กรุณาสร้างแอป todo ใหม่ที่ back4app พร้อมกับสคีมาคลาสที่สมบูรณ์ ”) ให้ ai ตัวแทนสร้างสคีมาสำหรับคุณ การใช้ ai ตัวแทนสามารถช่วยประหยัดเวลาเมื่อคุณตั้งค่าสถาปัตยกรรมข้อมูลของคุณและรับประกันความสอดคล้องในแอปพลิเคชันของคุณ ข้อมูลเชิงสัมพันธ์ หากคุณมีข้อมูลเชิงสัมพันธ์ – เช่น, วัตถุหมวดหมู่ ที่ชี้ไปยังหลาย รายการ todo – คุณสามารถใช้ พอยเตอร์ หรือ ความสัมพันธ์ ใน parse ได้ จาก elm, คุณสามารถจัดการความสัมพันธ์เหล่านี้โดยการรวมฟิลด์พอยเตอร์หรือความสัมพันธ์ใน rest หรือ graphql ของคุณ ตัวอย่างเช่น การเพิ่มพอยเตอร์ผ่าน rest { "title" "task with category", "category" { " type" "pointer", "classname" "category", "objectid" "your category object id" } } เมื่อคุณทำการค้นหา คุณยังสามารถรวมข้อมูลพอยเตอร์โดยใช้พารามิเตอร์ ?include=category ใน rest หรือใช้ include ในการค้นหา graphql การค้นหาสด สำหรับการอัปเดตแบบเรียลไทม์ back4app มี การค้นหาสด แม้ว่าจะไม่มีแพ็คเกจ elm ที่เป็นทางการสำหรับการค้นหาสดของ parse แต่คุณยังสามารถเปิดใช้งานได้ในแดชบอร์ด back4app ของคุณ เปิดใช้งานการค้นหาสด ภายใต้ การตั้งค่าเซิร์ฟเวอร์ ของแอปของคุณ ใช้ websocket endpoint สำหรับการค้นหาสดในไคลเอนต์เฉพาะ หากคุณต้องการรวมการค้นหาสดกับ elm คุณสามารถใช้ elm websocket (หรือวิธีการที่กำหนดเองอื่น) เพื่อสมัครสมาชิกการเปลี่ยนแปลง อย่างไรก็ตาม นี่ต้องการการกำหนดค่าที่ซับซ้อนมากขึ้นเนื่องจากไม่มีไคลเอนต์การค้นหาสดของ elm อย่างเป็นทางการในขณะนี้ ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps กลไกความปลอดภัยของ back4app back4app ให้ความสำคัญกับความปลอดภัยโดยการจัดเตรียม access control lists (acls) และ class level permissions (clps) ฟีเจอร์เหล่านี้ช่วยให้คุณสามารถจำกัดว่าใครสามารถอ่านหรือเขียนข้อมูลได้ตามวัตถุหรือคลาส ทำให้มั่นใจได้ว่าผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่สามารถแก้ไขข้อมูลของคุณได้ access control lists (acls) acl acl ถูกนำไปใช้กับวัตถุแต่ละชิ้นเพื่อกำหนดว่าผู้ใช้ บทบาท หรือสาธารณะสามารถทำการอ่าน/เขียนได้หรือไม่ คุณสามารถกำหนดค่า acl จาก elm โดยการรวม acl ใน json ของคุณเมื่อสร้างหรืออัปเดตวัตถุผ่าน rest หรือ graphql ตัวอย่างเช่น เพื่อสร้าง todo ส่วนตัว คุณสามารถตั้งค่า { "title" "private task", "acl" { "user object id" { "read" true, "write" true } } } สิ่งนี้จะป้องกันไม่ให้ใครก็ตามนอกจากผู้ใช้คนนั้นอ่านหรือแก้ไขวัตถุ class level permissions (clps) clps กำหนดสิทธิ์เริ่มต้นของทั้งชั้นเรียน เช่น ชั้นเรียนสามารถอ่านหรือเขียนได้สาธารณะหรือไม่ หรือเฉพาะบทบาทบางอย่างเท่านั้นที่สามารถเข้าถึงได้ ไปที่แดชบอร์ด back4app ของคุณ , เลือกแอปของคุณ และเปิด ฐานข้อมูล ส่วน เลือกชั้นเรียน (เช่น “todo”) เปิดแท็บสิทธิ์ระดับชั้นเรียน กำหนดค่าเริ่มต้นของคุณ เช่น “ต้องการการตรวจสอบสิทธิ์” สำหรับการอ่านหรือเขียน หรือ “ไม่มีการเข้าถึง” สำหรับสาธารณะ สิทธิ์เหล่านี้ตั้งค่าพื้นฐาน ในขณะที่ acls ปรับแต่งสิทธิ์สำหรับวัตถุแต่ละรายการ โมเดลความปลอดภัยที่แข็งแกร่งมักจะรวมทั้ง clps (ข้อจำกัดกว้าง) และ acls (ข้อจำกัดที่ละเอียดต่อวัตถุ) สำหรับข้อมูลเพิ่มเติมไปที่ แนวทางความปลอดภัยของแอป ขั้นตอนที่ 4 – การเขียนและการปรับใช้ฟังก์ชันคลาวด์ cloud code เป็นฟีเจอร์ของสภาพแวดล้อม parse server ที่ช่วยให้คุณสามารถเรียกใช้โค้ด javascript ที่กำหนดเองบนฝั่งเซิร์ฟเวอร์ – โดยไม่ต้องจัดการเซิร์ฟเวอร์หรือโครงสร้างพื้นฐาน โดยการเขียน cloud code คุณสามารถขยายแบ็กเอนด์ back4app ของคุณด้วยตรรกะทางธุรกิจเพิ่มเติม การตรวจสอบความถูกต้อง ทริกเกอร์ และการรวมที่ทำงานอย่างปลอดภัยและมีประสิทธิภาพบน parse server มันทำงานอย่างไร เมื่อคุณเขียน cloud code โดยทั่วไปคุณจะวางฟังก์ชัน javascript ของคุณ ทริกเกอร์ และโมดูล npm ที่จำเป็นใน main js (หรือ app js ) ไฟล์ ไฟล์นี้จะถูกปรับใช้ไปยังโปรเจกต์ back4app ของคุณ ซึ่งจะถูกดำเนินการภายในสภาพแวดล้อม parse server cloud code ทั้งหมดสำหรับแอป back4app ของคุณทำงานภายใน parse server ที่จัดการโดย back4app ดังนั้นคุณจึงไม่ต้องกังวลเกี่ยวกับการบำรุงรักษาเซิร์ฟเวอร์ การปรับขนาด หรือการจัดเตรียม เมื่อใดก็ตามที่คุณอัปเดตและปรับใช้ไฟล์ main js เซิร์ฟเวอร์ parse ที่กำลังทำงานจะได้รับการอัปเดตด้วยโค้ดล่าสุดของคุณ // main js // import an npm module (e g , axios) const axios = require('axios'); parse cloud define('fetchexternaldata', async (request) => { const url = request params url; if (!url) { throw new error('url parameter is required'); } const response = await axios get(url); return response data; }); คุณสามารถเรียกใช้ฟังก์ชัน cloud code เหล่านี้จาก elm โดยการทำคำขอ rest ไปที่ https //parseapi back4app com/functions/fetchexternaldata กรณีการใช้งานทั่วไป ตรรกะธุรกิจ การรวมข้อมูล, การประมวลผลการชำระเงิน, ฯลฯ การตรวจสอบข้อมูล การตรวจสอบให้แน่ใจว่าฟิลด์บางฟิลด์ตรงตามเกณฑ์ก่อนที่จะบันทึก ทริกเกอร์ การรันโค้ดก่อนหรือหลังการบันทึก/อัปเดต/ลบ การรวมระบบ การเชื่อมต่อกับ api หรือบริการภายนอก การบังคับใช้ความปลอดภัย การตรวจสอบบทบาทหรือสิทธิ์ของผู้ใช้ก่อนที่จะดำเนินการที่สำคัญ ปรับใช้ฟังก์ชันของคุณ การปรับใช้ผ่าน back4app cli ติดตั้ง cli (ตัวอย่าง linux/macos) curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash กำหนดค่าคีย์บัญชีของคุณ b4a configure accountkey ปรับใช้โค้ดคลาวด์ของคุณ b4a deploy การปรับใช้ผ่านแดชบอร์ด ในแดชบอร์ดของแอปของคุณ ไปที่ cloud code > functions คัดลอก/วางฟังก์ชันลงใน main js editor คลิก deploy เรียกใช้ฟังก์ชันของคุณ จาก elm คุณสามารถเรียกใช้ cloud function โดยการทำ post request import config exposing (applicationid, restapikey, serverurl) import http import json decode as decode import json encode as encode cloudfunction string > encode value > http request decode value cloudfunction functionname body = http request { method = "post" , headers = \[ http header "x parse application id" applicationid , http header "x parse rest api key" restapikey , http header "content type" "application/json" ] , url = serverurl ++ "/functions/" ++ functionname , body = http jsonbody body , expect = http expectjson decode value , timeout = nothing , tracker = nothing } calculatetextlength string > http request decode value calculatetextlength text = let requestbody = encode object \[ ( "text", encode string text ) ] in cloudfunction "calculatetextlength" requestbody คุณยังสามารถเรียกใช้ cloud functions ผ่าน graphql mutation { calculatetextlength(input { text "hello graphql" }) { result } } ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ์ผู้ใช้ การตรวจสอบสิทธิ์ผู้ใช้ใน back4app back4app ใช้ parse user คลาสเป็นพื้นฐานสำหรับการตรวจสอบสิทธิ์ โดยค่าเริ่มต้น parse จะจัดการการเข้ารหัสรหัสผ่าน โทเค็นเซสชัน และการจัดเก็บข้อมูลอย่างปลอดภัย คุณสามารถสร้างและเข้าสู่ระบบผู้ใช้ผ่าน rest หรือ graphql จากแอป elm ของคุณ การตั้งค่าการตรวจสอบสิทธิ์ผู้ใช้ การลงทะเบียนผู้ใช้ใหม่ (rest) signupuser string > string > string > http request decode value signupuser username password email = http request { method = "post" , headers = \[ http header "x parse application id" applicationid , http header "x parse rest api key" restapikey , http header "content type" "application/json" ] , url = serverurl ++ "/users" , body = http jsonbody (encode object \[ ( "username", encode string username ) , ( "password", encode string password ) , ( "email", encode string email ) ] ) , expect = http expectjson decode value , timeout = nothing , tracker = nothing } การเข้าสู่ระบบ (rest) loginuser string > string > http request decode value loginuser username password = http request { method = "get" , headers = \[ http header "x parse application id" applicationid , http header "x parse rest api key" restapikey ] , url = serverurl ++ "/login?username=" ++ username ++ "\&password=" ++ password , body = http emptybody , expect = http expectjson decode value , timeout = nothing , tracker = nothing } การรวมเข้าสู่ระบบด้วยโซเชียล back4app และ parse สามารถรวมเข้ากับผู้ให้บริการ oauth ที่นิยม เช่น google , facebook , หรือ apple โดยทั่วไปแล้ว คุณจะต้องกำหนดค่าผู้ให้บริการเหล่านี้ในแดชบอร์ด back4app และจากนั้นทำการร้องขอที่จำเป็นจาก elm ดูที่ เอกสารการเข้าสู่ระบบด้วยโซเชียล https //www back4app com/docs/platform/sign in with apple สำหรับขั้นตอนการตั้งค่าที่ละเอียด การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน ไปที่การตั้งค่าอีเมล ในแดชบอร์ด back4app ของคุณ เปิดใช้งานการตรวจสอบอีเมล เพื่อให้แน่ใจว่าผู้ใช้ใหม่ยืนยันความเป็นเจ้าของที่อยู่อีเมลของตน กำหนดค่าที่อยู่จาก , เทมเพลตอีเมล และโดเมนที่กำหนดเองของคุณหากต้องการ ขั้นตอนที่ 6 – การจัดการการจัดเก็บไฟล์ การอัปโหลดและการเรียกคืนไฟล์ parse รวมถึง parse file คลาสสำหรับจัดการการอัปโหลดไฟล์ ซึ่ง back4app จะเก็บไว้อย่างปลอดภัย เนื่องจากเราใช้ rest จาก elm เราจึงสามารถทำการอัปโหลดไฟล์แบบหลายส่วนหรือแนบไฟล์ที่เข้ารหัส base64 การอัปโหลดไฟล์ผ่าน rest uploadfile string > string > http request decode value uploadfile filename base64content = http request { method = "post" , headers = \[ http header "x parse application id" applicationid , http header "x parse rest api key" restapikey , http header "content type" "text/plain" ] , url = serverurl ++ "/files/" ++ filename , body = http stringbody "text/plain" base64content , expect = http expectjson decode value , timeout = nothing , tracker = nothing } เมื่ออัปโหลดแล้ว คุณจะได้รับ url ของไฟล์ในคำตอบ คุณสามารถเก็บ url นั้นในฟิลด์ของคลาส parse หรือแสดงในแอปพลิเคชัน elm ของคุณตามต้องการ ความปลอดภัยของไฟล์ parse server มีการกำหนดค่าที่ช่วยจัดการความปลอดภัยในการอัปโหลดไฟล์ ตัวอย่างเช่น { "fileupload" { "enableforpublic" true, "enableforanonymoususer" true, "enableforauthenticateduser" true } } ขั้นตอนที่ 7 – การกำหนดตารางงานด้วย cloud jobs cloud jobs cloud jobs ใน back4app ช่วยให้คุณกำหนดตารางและรันงานประจำบนแบ็กเอนด์ของคุณ เช่น การทำความสะอาดข้อมูลเก่าหรือการส่งอีเมลตามระยะเวลา ตัวอย่างเช่น งานที่ลบ todos ที่มีอายุมากกว่า 30 วันอาจมีลักษณะดังนี้ // 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 code ของคุณ พร้อมกับงานใหม่ (ผ่าน cli หรือแดชบอร์ด) ไปที่แดชบอร์ด back4app > การตั้งค่าแอป > การตั้งค่าเซิร์ฟเวอร์ > งานเบื้องหลัง กำหนดตาราง งานให้ทำทุกวันหรือเมื่อใดก็ได้ตามต้องการ ขั้นตอนที่ 8 – การรวม webhooks webhooks ช่วยให้แอป back4app ของคุณสามารถส่งคำขอ http ไปยังบริการภายนอกเมื่อเกิดเหตุการณ์บางอย่าง นี่เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการรวมเข้ากับระบบของบุคคลที่สาม เช่น เกตเวย์การชำระเงิน (เช่น stripe), เครื่องมือการตลาดทางอีเมล หรือแพลตฟอร์มการวิเคราะห์ข้อมูล ไปที่การกำหนดค่า webhooks ในแดชบอร์ด back4app ของคุณ > เพิ่มเติม > webhooks และคลิกที่ เพิ่ม webhook ตั้งค่าจุดสิ้นสุด (เช่น, https //your external service com/webhook endpoint https //your external service com/webhook endpoint ) กำหนดค่า triggers เพื่อระบุว่าเหตุการณ์ใดในคลาส back4app หรือฟังก์ชัน cloud code ของคุณจะทำให้ webhook ทำงาน ตัวอย่างเช่น หากคุณต้องการแจ้งเตือนช่อง slack ทุกครั้งที่มีการสร้าง todo ใหม่ สร้างแอป slack ที่รับ webhook ที่เข้ามา คัดลอก url webhook ของ slack ในแดชบอร์ด back4app ของคุณ ตั้งค่าจุดสิ้นสุดเป็น url slack สำหรับเหตุการณ์ “บันทึกใหม่ในคลาส todo ” เพิ่ม http headers หรือ payloads ที่กำหนดเองหากจำเป็น ขั้นตอนที่ 9 – การสำรวจแผงผู้ดูแล back4app แอป back4app admin app เป็นอินเทอร์เฟซการจัดการที่ใช้เว็บซึ่งออกแบบมาสำหรับผู้ใช้ที่ไม่ใช่เทคนิคเพื่อทำการดำเนินการ crud และจัดการงานข้อมูลประจำวันโดยไม่ต้องเขียนโค้ดใดๆ มันให้ มุ่งเน้นโมเดล , ใช้งานง่าย อินเทอร์เฟซที่ช่วยให้การบริหารฐานข้อมูล การจัดการข้อมูลที่กำหนดเอง และการดำเนินงานในระดับองค์กรเป็นไปอย่างราบรื่น การเปิดใช้งานแอป admin เปิดใช้งาน โดยไปที่ app dashboard > more > admin app และคลิกที่ปุ่ม “enable admin app” สร้างผู้ใช้ admin คนแรก (ชื่อผู้ใช้/รหัสผ่าน) ซึ่งจะสร้างบทบาทใหม่ (b4aadminuser) และคลาส (b4asetting, b4amenuitem, และ b4acustomfield) ในสคีมาของแอปของคุณโดยอัตโนมัติ เลือกซับโดเมน สำหรับการเข้าถึงอินเทอร์เฟซผู้ดูแลระบบและทำการตั้งค่าให้เสร็จสมบูรณ์ เข้าสู่ระบบ โดยใช้ข้อมูลประจำตัวผู้ดูแลระบบที่คุณสร้างขึ้นเพื่อเข้าถึงแดชบอร์ดแอป admin ใหม่ของคุณ เมื่อเปิดใช้งานแล้ว แอป back4app admin จะทำให้การดู แก้ไข หรือ ลบข้อมูลจากฐานข้อมูลของคุณเป็นเรื่องง่าย โดยไม่ต้องใช้ parse dashboard หรือโค้ดแบ็คเอนด์โดยตรง ด้วยการควบคุมการเข้าถึงที่กำหนดค่าได้ คุณสามารถแชร์อินเทอร์เฟซนี้กับสมาชิกในทีม หรือ ลูกค้าที่ต้องการวิธีการจัดการข้อมูลที่ชัดเจนและคลิกได้อย่างปลอดภัย บทสรุป โดยการติดตามบทแนะนำที่ครอบคลุมนี้ คุณได้ สร้างแบ็คเอนด์ที่ปลอดภัย สำหรับแอป elm บน back4app กำหนดค่าฐานข้อมูล ด้วยสคีมาของคลาส ประเภทข้อมูล และความสัมพันธ์ รวมการค้นหาแบบเรียลไทม์ (live queries) เพื่อการอัปเดตข้อมูลทันที ใช้มาตรการด้านความปลอดภัย โดยใช้ acls และ clps เพื่อปกป้องและจัดการการเข้าถึงข้อมูล นำฟังก์ชัน cloud code มาใช้เพื่อรันตรรกะทางธุรกิจที่กำหนดเองในฝั่งเซิร์ฟเวอร์ ตั้งค่าการตรวจสอบสิทธิ์ผู้ใช้ โดยมีการสนับสนุนการตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน จัดการการอัปโหลดไฟล์ และการเรียกคืน โดยมีการควบคุมความปลอดภัยของไฟล์ที่เลือกได้ กำหนดเวลางาน cloud สำหรับงานพื้นหลังอัตโนมัติ ใช้ webhooks เพื่อรวมกับบริการภายนอก สำรวจแผงควบคุม back4app สำหรับการจัดการข้อมูล ด้วย elm frontend ที่มั่นคงและ back4app backend ที่แข็งแกร่ง ตอนนี้คุณมีความพร้อมในการพัฒนาแอปพลิเคชันที่มีฟีเจอร์มากมาย ขยายขนาดได้ และปลอดภัยต่อการใช้งาน สำรวจฟังก์ชันการทำงานที่ซับซ้อนมากขึ้น รวมถึงการรวมตรรกะทางธุรกิจของคุณ และใช้พลังของ back4app เพื่อประหยัดเวลาในการจัดการเซิร์ฟเวอร์และฐานข้อมูลอย่างมาก ขอให้สนุกกับการเขียนโค้ด! ขั้นตอนถัดไป สร้างแอป elm ที่พร้อมสำหรับการผลิต โดยการขยาย backend นี้เพื่อจัดการกับโมเดลข้อมูลที่ซับซ้อนมากขึ้น กลยุทธ์การแคช และการปรับแต่งประสิทธิภาพ รวมฟีเจอร์ขั้นสูง เช่น กระบวนการตรวจสอบสิทธิ์เฉพาะทาง การควบคุมการเข้าถึงตามบทบาท หรือ api ภายนอก (เช่น เกตเวย์การชำระเงิน) ตรวจสอบเอกสารทางการของ back4app สำหรับการเจาะลึกในด้านความปลอดภัยขั้นสูง การปรับแต่งประสิทธิภาพ และการวิเคราะห์บันทึก สำรวจบทเรียนอื่นๆ เกี่ยวกับแอปพลิเคชันแชทแบบเรียลไทม์ แดชบอร์ด iot หรือบริการตามตำแหน่ง คุณสามารถรวมเทคนิคที่เรียนรู้ที่นี่กับ api ของบุคคลที่สามเพื่อสร้างแอปพลิเคชันที่ซับซ้อนในโลกจริง