ภาพรวมตรรกะของเซิร์ฟเวอร์

ตรรกะเซิร์ฟเวอร์ Power Pages ช่วยให้ผู้สร้างสามารถเรียกใช้ JavaScript บนเซิร์ฟเวอร์ได้อย่างปลอดภัย เพิ่มความสามารถในการขยายไปยังรันไทม์ไซต์โดยตรง
 
เนื่องจากตรรกะของเซิร์ฟเวอร์ทํางานบนเซิร์ฟเวอร์ จึงถูกซ่อนจากเบราว์เซอร์ และป้องกันโดยบทบาทของเว็บและสิทธิ์ของตาราง คุณเพิ่มตรรกะใน Power Pages design studio และเขียนโดยใช้ Visual Studio Code ซึ่งมีการตรวจสอบ IntelliSense และคอมไพล์ไทม์

Dataverse จะจัดเก็บโค้ดและการกําหนดค่า ดังนั้นตรรกะของเซิร์ฟเวอร์จะได้รับประโยชน์จากการจัดการวงจรชีวิตเดียวกันและไปป์ไลน์การปรับใช้เป็นคอมโพเนนต์ Power Pages อื่น ๆ

โฟลว์ตรรกะของเซิร์ฟเวอร์

การรองรับภาษา

ตรรกะเซิร์ฟเวอร์ช่วยให้นักพัฒนาสามารถเขียนโค้ด JavaScript ดั้งเดิมที่สอดคล้องกับมาตรฐาน ECMAScript 2023 ได้โดยไม่ต้องรองรับ API ของเบราว์เซอร์ (เช่น DOM API fetch หรือ XMLHttpRequest) รูปแบบที่ไม่ปลอดภัยหรือถูกจํากัดบางรูปแบบจะถูกบล็อกเพื่อให้แน่ใจว่ามีการดําเนินการที่ปลอดภัย สําหรับข้อมูลเพิ่มเติม โปรดดู ข้อจํากัดในการเขียนตรรกะของเซิร์ฟเวอร์

คุณสามารถทําอะไรกับตรรกะเซิร์ฟเวอร์ได้

ตรรกะของเซิร์ฟเวอร์ใน Power Pages ช่วยให้ผู้สร้างและนักพัฒนาย้ายการดําเนินการที่สําคัญจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์สําหรับการควบคุม ความสามารถในการปรับขนาด และการรักษาความปลอดภัยที่ดีขึ้น ซึ่งช่วยให้เว็บไซต์ของคุณทํางานและการรวมที่ซับซ้อนโดยไม่ต้องเปิดเผยตรรกะหรือข้อมูลที่ละเอียดอ่อนในฝั่งไคลเอ็นต์

โดยใช้ตรรกะของเซิร์ฟเวอร์ คุณสามารถ:

  • เชื่อมต่อกับบริการภายนอกและ API: รวมเข้ากับ REST API, ฟังก์ชัน Azure หรือระบบธุรกิจอื่น ๆ เพื่อแลกเปลี่ยนข้อมูล การดําเนินการทริกเกอร์ หรือดึงข้อมูลแบบไดนามิกได้อย่างปลอดภัย
  • ดําเนินการรักษาความปลอดภัยข้อมูล : ดําเนินการตามข้อมูล—เช่น การคิวรี การอัปเดต หรือการลบระเบียน—บนเซิร์ฟเวอร์ การใช้ตรรกะทางธุรกิจและการตรวจสอบความถูกต้องอย่างสม่ําเสมอ
  • เรียกใช้ตรรกะและการแปลงแบบกําหนดเอง: ประมวลผลหรือจัดการข้อมูลก่อนที่จะส่งกลับไปยังไคลเอ็นต์ ตัวอย่างเช่น คํานวณผลรวม ตรวจสอบกฎทางธุรกิจ หรือเติมแต่งข้อมูลโดยใช้การค้นหาภายนอก
  • ส่งกลับการตอบสนองที่ประมวลผลไปยังหน้า: ส่งข้อมูลที่จําเป็นและข้อมูลที่กรองแล้วไปยังหน้าไคลเอ็นต์เท่านั้น เพื่อให้มั่นใจในการแสดงผลที่รวดเร็วขึ้นและลดปริมาณข้อมูล
  • ทําให้การรับรองความถูกต้องมีความปลอดภัยง่ายขึ้น: จัดการข้อมูลประจําตัวของบริการและคีย์ API บนเซิร์ฟเวอร์แทนที่จะเป็นในโค้ดไคลเอ็นต์ เพื่อรักษาความปลอดภัยและแนวทางปฏิบัติในการผสานรวมที่สอดคล้องกัน

ประโยชน์ของการใช้ตรรกะเซิร์ฟเวอร์

ตรรกะของเซิร์ฟเวอร์นําความสามารถในการขยายระดับองค์กรไปยัง Power Pages ช่วยให้องค์กรสร้างประสบการณ์เว็บที่ปลอดภัย ปรับขนาดได้ และดูแลรักษาได้มากขึ้น

ประโยชน์สําคัญได้แก่:

  • ความปลอดภัยขั้นสูง: ดําเนินการและจัดเก็บตรรกะทางธุรกิจ ข้อมูลลับ และคีย์ API บนเซิร์ฟเวอร์ —ไม่แสดงในเบราว์เซอร์หรือผู้ใช้ปลายทาง
  • ความยืดหยุ่นในการรวม: เชื่อมต่อ Power Pages อย่างราบรื่นกับระบบภายนอก รวมถึงฟังก์ชัน Azure, REST API, การดําเนินการด้านข้อมูล และบริการทางธุรกิจ
  • การเพิ่มประสิทธิภาพและความคุ้มค่า: ลดงานหนักในการคำนวณ การตรวจสอบความถูกต้อง และการประมวลผลข้อมูลลงบนเซิร์ฟเวอร์ เพื่อช่วยลดภาระงานฝั่งไคลเอ็นต์และเพิ่มการตอบสนองของหน้าให้ดียิ่งขึ้น
  • ความสอดคล้องกันในช่องทางต่าง ๆ: ใช้ตรรกะเดียวกันทั่วทั้งเว็บเพจ ฟอร์ม และการรวมเพื่อสร้างความมั่นใจในการตรวจสอบความถูกต้องของข้อมูลสม่ําเสมอและลักษณะการทํางานตลอดทั้งแอปพลิเคชัน
  • การบํารุงรักษาแบบรวมศูนย์: อัปเดตหรือปรับปรุงตรรกะในที่เดียวโดยไม่ต้องปรับใช้ใหม่หรือแก้ไขสคริปต์ไคลเอ็นต์หรือหน้าหลายสคริปต์

รักษาความปลอดภัยตรรกะของเซิร์ฟเวอร์

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

การยืนยันตัวตน API ของตรรกะเซิร์ฟเวอร์

คุณไม่จําเป็นต้องรวมรหัสการรับรองความถูกต้องแบบกําหนดเอง การรับรองความถูกต้องและการอนุญาตจะถูกจัดการโดยเซสชันของแอปพลิเคชัน การเรียกใช้ API ตรรกะของเซิร์ฟเวอร์ทั้งหมดต้องมีโทเค็น Cross-Site Request Forgery (CSRF)

การตั้งค่าการกํากับดูแลสําหรับการโทรเข้าบริการภายนอก

ตรรกะเซิร์ฟเวอร์สามารถเชื่อมต่อกับ REST API ภายนอก ฟังก์ชัน Azure และระบบธุรกิจอื่น ๆ เพื่อดําเนินการรวมกันฝั่งเซิร์ฟเวอร์ เพื่อป้องกันการแทรกซึมของข้อมูล ผู้ดูแลระบบผู้เช่าสามารถ บล็อกการเรียกใช้ HTTP ขาออก ที่ตรรกะของเซิร์ฟเวอร์ดําเนินการในแต่ละไซต์ เมื่อมีการนำมาใช้การควบคุมการกำกับดูแลนี้ การเรียก HTTP ขาออกใด ๆ ที่ตรรกะของเซิร์ฟเวอร์พยายามจะทำจะล้มเหลว เมื่อต้องการเรียนรู้เพิ่มเติม ดูปิดใช้งานการเรียกบริการภายนอกจากตรรกะเซิร์ฟเวอร์

การตั้งค่าไซต์

ใช้การตั้งค่าไซต์ทางเลือกต่อไปนี้เพื่อช่วยในการกําหนดค่าตรรกะของเซิร์ฟเวอร์:

ชื่อ รายละเอียด ค่าเริ่มต้น
ServerLogic/เปิดใช้งาน เปิด/ปิดใช้งานคุณลักษณะ จริง
ตรรกะเซิร์ฟเวอร์/โดเมนที่อนุญาต จํากัดโดเมนภายนอกที่สามารถเรียกได้ โดเมนทั้งหมดที่ได้รับอนุญาต
ServerLogic/TimeoutInSeconds เวลาการดําเนินการสูงสุด (เป็นวินาที) สามารถเพิ่มการหมดเวลาได้สูงสุด 240 วินาที 120
ServerLogic/AllowNetworkingToAllDomains อนุญาตเครือข่ายข้ามโดเมน จริง

URL API ตรรกะของเซิร์ฟเวอร์

สร้าง URL ของ API โดยใช้รูปแบบนี้:

https://<site-url>/_api/serverlogics/<server-logic-name>  
ตัวอย่าง:

https://contoso.powerappsportals.com/_api/serverlogics/exchangerate

 

วิธีการ HTTP ที่สนับสนุน

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

วิธี ลายเซ็นของฟังก์ชัน การใช้ รายละเอียด
ดึงข้อมูล get() ฟังก์ชัน { } ดึงข้อมูล  ใช้เพื่อดึงข้อมูลจาก Dataverse API ภายนอก หรือตรรกะทางธุรกิจแบบกําหนดเอง เหมาะสําหรับการดําเนินการแบบอ่านอย่างเดียวที่ไม่มีการเปลี่ยนแปลงข้อมูล
ประกาศ Function Post() { } สร้างระเบียนหรือส่งข้อมูลใหม่  มักใช้เพื่อแทรกระเบียนใหม่ลงใน Dataverse หรือส่งข้อมูลไปยังระบบภายนอก เหมาะสำหรับการส่งฟอร์มหรือเวิร์กโฟลว์ที่จำเป็นต้องสร้างหรือทริกเกอร์การดำเนินการ
วาง function put() { } แทนที่หรืออัปเดตบันทึกข้อมูล  อัปเดตหรือแทนที่ทั้งระเบียนหรือชุดข้อมูล โดยทั่วไปจะใช้สําหรับการอัปเดตเต็มรูปแบบหรือสถานการณ์การทําข้อมูลให้ตรงกัน
แพตช์ Function patch() { } อัปเดตส่วนของเรกคอร์ด (upsert)  ดําเนินการอัปเดตบางส่วนของข้อมูลที่มีอยู่โดยไม่ต้องแทนที่ทั้งระเบียน ใช้วิธีนี้เมื่อเฉพาะเขตข้อมูลที่เฉพาะเจาะจงเท่านั้นที่จําเป็นต้องทําการแก้ไข
ลบ function del() { } ลบระเบียนหรือเขตข้อมูล  เอาระเบียนหรือข้อมูลจาก Dataverse หรือระบบภายนอกออก ควรใช้อย่างระมัดระวังเพื่อป้องกันการสูญหายของข้อมูลที่ไม่ได้ตั้งใจ

ขั้นตอนถัดไป

ตรรกะของเซิร์ฟเวอร์ผู้เขียน

วัตถุเซิร์ฟเวอร์
วิธีการโต้ตอบกับตาราง Dataverse โดยใช้ตรรกะของเซิร์ฟเวอร์