การเรียกใช้ API ใน Next.js สามารถทำได้หลายวิธี แต่วิธีที่แพร่หลายและที่เป็นที่แนะนำคือใช้ fetch หรือแพ็กเกจเสริมอื่น ๆ เช่น Axios เพื่อทำการเรียก API ภายนอก. นี่คือวิธีการเรียกใช้ API ใน Next.js โดยใช้ fetch:
สร้างโครงหน้า (page) หรือคอมโพนเนนต์ (component) ที่คุณต้องการใช้ในการแสดงผลข้อมูลจาก API โดยปกติคุณจะสร้างโครงหน้าในโฟลเดอร์
pagesของโปรเจ็กต์ Next.js ของคุณ.ในโครงหน้าหรือคอมโพนเนนต์ที่คุณสร้าง เรียกใช้
fetchเพื่อเรียก API ดังนี้:
1 | // ตัวอย่างการเรียกใช้ API ด้วย fetch |
ในตัวอย่างข้างบนเราใช้
useStateเพื่อเก็บข้อมูลที่ได้รับจาก API และuseEffectเพื่อดึงข้อมูลเมื่อคอมโพนเนนต์ถูกโหลด. คุณสามารถปรับแต่งโค้ดในuseEffectเพื่อรวมการจัดการข้อผิดพลาดหรือการกำหนดค่าอื่น ๆ ตามความต้องการของคุณ.รันโปรเจ็กต์ Next.js ของคุณโดยใช้คำสั่ง
npm run devหรือyarn devเพื่อดูผลลัพธ์ที่แสดงข้อมูลจาก API บนหน้าเว็บ.โดยปกติคุณควรจะต้องเรียก API จาก
getServerSidePropsหรือgetStaticPropsเมื่อจะสร้างหน้า Next.js ที่ต้องการการเรียก API ตอนตัวหน้าถูกสร้างขึ้น (server-side rendering หรือ static generation) เพื่อให้ความเร็วในการโหลดเว็บไซต์ดีขึ้น แต่ในตัวอย่างข้างบนเราใช้fetchในuseEffectเพื่อง่ายต่อการเรียก API ในคอมโพนเนนต์ที่ถูกโหลดในฝั่งไคลเอนต์.
คำแนะนำเพิ่มเติม:
- หากคุณต้องการใช้งาน API key หรือมีการตั้งค่าอื่น ๆ ควรเก็บข้อมูลส่วนตัวอย่าง API key ในไฟล์
.env.localและใช้process.envเพื่อเข้าถึงข้อมูลนี้. - ควรจัดการข้อผิดพลาดอย่างเหมาะสมเมื่อการเรียก API ไม่สำเร็จ โดยการใช้
try...catchหรือการส่งคำขอ error กลับไปยังเซิร์ฟเวอร์. - หากคุณต้องการใช้งานการยืนยันสิทธิ์แบบ Bearer Token หรือการส่งข้อมูลพื้นฐาน (Basic Authentication) คุณจะต้องกำหนด header ในคำขอ
fetchด้วย.