PlusMagi's Blog By Pitt Phunsanit Backend,Database Astro: API Endpoints(การสร้าง REST API / Webhook ด้วยไฟล์ .ts/.js ภายใน pages/api/)

Astro: API Endpoints(การสร้าง REST API / Webhook ด้วยไฟล์ .ts/.js ภายใน pages/api/)

ในโลกของการพัฒนาเว็บสมัยใหม่ การสร้าง Backend API ที่มีประสิทธิภาพและเชื่อถือได้คือหัวใจสำคัญของแอปพลิเคชันใดๆ Astro Framework ได้เปิดโอกาสให้นักพัฒนาสามารถสร้าง Server-Side API Endpoints ได้อย่างง่ายดายผ่านโครงสร้างไฟล์ pages/api/ ซึ่งช่วยให้คุณสามารถสร้าง RESTful API หรือ Webhook ได้โดยตรง

เมื่อผนวกความสามารถนี้เข้ากับพลังของระบบจัดการฐานข้อมูลเชิงสัมพันธ์อย่าง PostgreSQL คุณจะสามารถสร้างระบบที่สมบูรณ์แบบ ตั้งแต่การรับ Request ผ่าน Endpoint ไปจนถึงการจัดการข้อมูลที่ซับซ้อนในฐานข้อมูลได้อย่างปลอดภัย บทความนี้จะเจาะลึกวิธีการใช้ Astro API เพื่อสร้างการเชื่อมต่อที่แข็งแกร่งกับ PostgreSQL โดยใช้ไวยากรณ์ของ PostgreSQL อย่างถูกต้อง

⚙️ หลักการทำงาน: Astro API กับ PostgreSQL

เมื่อคุณสร้างไฟล์ API ใน Astro (เช่น pages/api/data.ts) ไฟล์นี้จะทำหน้าที่เป็นตัวกลาง (middleware) ที่รับ HTTP Request (GET, POST, PUT) จากภายนอก ก่อนที่จะดำเนินการใดๆ ระบบจะต้องตรวจสอบความถูกต้องของข้อมูลและส่งคำสั่งไปยัง PostgreSQL เพื่อดำเนินการกับข้อมูลเหล่านั้น

🚀 ตัวอย่าง: การสร้าง Endpoint สำหรับบันทึกข้อมูล (POST Request)

สมมติว่าเราต้องการสร้าง API Endpoint ที่รับรายการสินค้า (เช่น ‘apple,banana,orange’) และบันทึกรายการเหล่านี้ลงในตาราง products ใน PostgreSQL

1. โค้ด Astro API Endpoint (pages/api/products.ts)

ในส่วนนี้ เราจะรับข้อมูลจาก Request Body และใช้ไลบรารี PostgreSQL Client เพื่อรันคำสั่ง SQL

TypeScript

// pages/api/products.ts
import { sql } from 'pg';

export async function POST({ request }) {
  const data = await request.json();
  const productList = data.items || 'item1,item2,item3';

  try {
    // การเรียกใช้ PostgreSQL
    const result = await sql`INSERT INTO products (product_list, created_at) VALUES (${productList}, NOW()) RETURNING id;`;
    return { success: true, id: result.rows[0].id, message: 'Data saved successfully' };
  } catch (error) {
    return { success: false, error: error.message };
  }
}

2. คำสั่ง PostgreSQL ที่ถูกเรียกใช้

คำสั่ง SQL ที่ถูกส่งไปยัง PostgreSQL คือหัวใจของการจัดการข้อมูล:

SQL

INSERT INTO products (product_list, created_at) VALUES ('item1,item2,item3'), NOW() RETURNING id;

🔗 การใช้งาน Webhook

API Endpoint ที่สร้างด้วย Astro ยังสามารถทำหน้าที่เป็น Webhook Receiver ได้อย่างสมบูรณ์แบบ เมื่อบริการภายนอก (เช่น Stripe หรือ GitHub) ส่ง Webhook POST Request มายัง Endpoint ของคุณ คุณสามารถเขียน Logic ใน pages/api/ เพื่อตรวจสอบ Payload และดำเนินการอัปเดตข้อมูลใน PostgreSQL ทันที เช่น การอัปเดตสถานะคำสั่งซื้อหลังจากมีการชำระเงินสำเร็จ

✅ บทสรุป

การรวม Astro API Endpoints เข้ากับ PostgreSQL ทำให้คุณมีเครื่องมือที่ทรงพลังในการสร้าง Full-Stack Web Application ที่มีประสิทธิภาพ API Endpoints ช่วยให้คุณจัดการ Business Logic และการสื่อสารกับฐานข้อมูลได้อย่างเป็นระเบียบและปลอดภัย ทำให้การพัฒนา RESTful API หรือ Webhook ที่เชื่อมต่อกับ PostgreSQL เป็นเรื่องที่ทำได้ง่ายและรวดเร็วตามมาตรฐาน Senior Architect ครับ