การเปิดตัว PostgREST 9.0.0 ซึ่งเป็นส่วนเสริมสำหรับเปลี่ยนฐานข้อมูลให้เป็น RESTful API

PostgREST 9.0.0 เปิดตัวแล้ว ซึ่งเป็นเว็บเซิร์ฟเวอร์ที่ทำงานแยกต่างหากพร้อมการใช้งาน Add-on แบบน้ำหนักเบากับ PostgreSQL DBMS โดยแปลออบเจ็กต์จากฐานข้อมูลที่มีอยู่เป็น RESTful API แทนที่จะแมปข้อมูลเชิงสัมพันธ์ลงในออบเจ็กต์ (ORM) PostgREST จะสร้างมุมมองในฐานข้อมูลโดยตรง ฝั่งฐานข้อมูลยังจัดการการทำให้เป็นอนุกรมของการตอบกลับ JSON การตรวจสอบข้อมูล และการอนุญาต ประสิทธิภาพของระบบเพียงพอที่จะประมวลผลคำขอสูงสุด 2000 รายการต่อวินาทีบนเซิร์ฟเวอร์ทั่วไป รหัสโครงการเขียนด้วยภาษา Haskell และเผยแพร่ภายใต้ใบอนุญาต MIT

ตัวอย่างเช่น การใช้เพียงกลไกสิทธิพิเศษของฐานข้อมูล คุณสามารถให้สิทธิ์การเข้าถึงข้อมูล (ตาราง ประเภทมุมมอง และขั้นตอนการจัดเก็บ) ผ่าน HTTP ในกรณีนี้ ไม่จำเป็นต้องเข้ารหัสการแปลดังกล่าว และโดยปกติแล้ว คำสั่ง GRANT คำสั่งเดียวก็เพียงพอที่จะทำให้ตารางพร้อมใช้งานผ่าน REST API เป็นไปได้ที่จะกำหนดค่าการเข้าถึงด้วยโทเค็น (JWT) และจัดระเบียบ "การเช่าหลายรายการ" ผ่านการใช้การรักษาความปลอดภัยระดับแถวแบบไดนามิก (การรักษาความปลอดภัยระดับแถว)

ในทางสถาปัตยกรรม PostgREST มุ่งสู่สถาปัตยกรรมเชิงข้อมูล (สถาปัตยกรรมเชิงข้อมูล) โดยที่ไมโครเซอร์วิสไม่ได้บันทึกสถานะของตัวเอง แต่ใช้การเข้าถึงข้อมูลเพียงครั้งเดียว (Data Access Layer) สำหรับสิ่งนี้

การเปิดตัว PostgREST 9.0.0 ซึ่งเป็นส่วนเสริมสำหรับเปลี่ยนฐานข้อมูลให้เป็น RESTful API

ท่ามกลางการเปลี่ยนแปลงในเวอร์ชันใหม่:

  • ตารางที่แบ่งพาร์ติชันถูกเพิ่มลงในแคชสคีมาการจัดเก็บข้อมูล ซึ่งทำให้ตารางดังกล่าวสามารถฝังการดำเนินการ UPSERT และ INSERT ในการตอบกลับตำแหน่ง ดำเนินการสอบถาม OPTIONS และใช้การสนับสนุน OpenAPI
  • ผ่าน RPC POST อนุญาตให้เรียกใช้ฟังก์ชันด้วยพารามิเตอร์ที่ไม่มีชื่อหนึ่งพารามิเตอร์
  • อนุญาตให้เรียกใช้ฟังก์ชันด้วยพารามิเตอร์ JSON เดียวโดยไม่มีส่วนหัว “Prefer: params=single-object”
  • อนุญาตให้โหลดข้อมูลประเภท bytea ลงในฟังก์ชันโดยใช้คำขอที่มี "Content-Type: application/octet-stream"
  • อนุญาตให้โหลดข้อความลงในฟังก์ชันโดยใช้คำสั่ง "ประเภทเนื้อหา: ข้อความ/ธรรมดา"
  • เพิ่มการรองรับอักขระ Escape ภายในวงเล็บคู่ เช่น "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")"
  • ความสามารถในการกรองทรัพยากรระดับแรกตามตัวกรองในตัว (“/projects?select=*,clients!inner(*)&clients.id=eq.12” ได้รับการจัดเตรียมไว้แล้ว
  • ตัวดำเนินการ "is" อนุญาตให้ใช้ค่า "unknown"
  • สามารถใช้งานร่วมกับ PostgreSQL 14 ได้แล้ว และการสนับสนุน PostgreSQL 9.5 ได้ถูกยกเลิกแล้ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น