การออกแบบโครงสร้างของโปรแกรม ส่วนหนึ่งที่อาจจะต้องเข้ามาเกี่ยวข้องในระบบคือ API (application programming interface) เรียกอีกชื่อว่า 3rd party (เติดท์ ปาร์ตี้) อาจจะเคยได้ยินหรือเคยทำมาบ้าง เอาล่ะเอามาทำในรูปแบบของ Laravel กัน
พูดถึงหน้าที่ของ API ออกแบบมาเพื่ออะไร ?
- จัดการหัวใจของการทำงานในระบบ ไม่ว่าจะเป็นการ อ่านเขียน กระบวนการประมวลผลทางด้านข้อมูลหรือการ เชื่อต่อกับ 3rd party อีกทีหนึ่ง ง่าย ๆคือ สร้างไว้เพื่อให้คนอื่นมาใช้และในขณะเดียวกันอาจไปเรียกใช้ข้อมูลที่อื่นด้วย
- สามารถ cross platform นี่คือจุดเด่นเลยก็ว่าได้ โดยอาศัยภาษากลางในการคุยกัน เปรียบเหมือนเราคุยกันกับต่างชาติโดยใช้ภาษาอังกฤษ api ก็มีภาษากลางตัวอย่างเช่น JSON
และอื่น ๆ ลองค้นหาใน google ได้ครับมีเยอะแยะมากมาย
เอาล่ะเรามาเริ่มกันเลย ก่อนอื่นต้องทำการติดตั้ง Laravel ก่อนน่ะครับ หากยังไม่ได้ทำการติดตั้งก็ทำการติดตั้งให้เรียบร้อย ซึ่งวิธีการติดตั้งผมได้เขียนไว้ใน บทความก่อนหน้านี้หาอ่านกันได้ เมื่อติดตั้ง Laravel เสร็ดเรียบร้อยแล้ว ก็เริ่มจากมาสร้าง Controller กันก่อนโดยใช้คำสั่ง
php artisan make:controller ApiControllerName ดังภาพ
ตัว artisan จะทำการสร้างไฟล์ Controller มาให้โดยอัตโนมัติครับพร้อมกับ Function พื้นฐานที่ควรจะมี
เมื่อเราได้ Controller เสร็ดแล้ว ต่อมาเราก็สร้าง Route เพื่อเรียกใช้งาน Controller ครับ โดยการเพิ่ม function เข้าไป ที่ไฟล์ app\Http\routes.php ดังภาพ
ทำการบันทึกไฟล์ อธิบายเพิ่มเติม route สามารถเขียนได้หลาย ๆ แบบ ทั้งแบบเฉพาะเจาะจงหรือแบบรวมฟังก์ชั่นให้โดยอัตโนมัติโดยใช้ resource เราจะได้ route มาครบ ทั้ง get post put update delete ตรวจสอบว่า route ของเราทำงานได้ถูกต้องหรือไม่โดยรันคำสั่ง php artisan route:list
ทำการบันทึกไฟล์ ทดสอบดูโดย เว็บบาวเซอร์หรือ tool อื่น ๆก็ได้ครับ ตัวอย่างนี้ผมใช้ Postman ในการทดสอบ ซึ่งเป็นเครื่องมือที่ออกแบบมาเพื่อการทดสอบ Api เลยก็ว่าได้ คุณสมบัติครบถ้วน ตัว Postman เป็น Extension ของ google Chrome ครับ หาโหลดได้ฟรี แต่หากอยากได้พวก unit test ต้องเสียเงินเพิ่มครับ เอาล่ะมาลองดูผลทดสอบกัน
ผลการทดสอบก็ไม่มีอะไรมากครับตามที่เราเขียนเอาไว้ แต่ที่จะให้เห็นภาพคือ การพ่น JSON ออกมาของ Api นั่นเอง โดยตัว api เองจะไม่พ่น HTML ออกมา แต่ข้อมูลจะถูกส่งออกมาในรูปแบบ JSON นั่นเอง
จะแตกต่างจากที่เรา echo Json_decode(array()); ครับ อาจจะไม่ได้ Header เป็น JSON ตามที่เราต้องการ
จริง ๆ มัน Library ที่เราควรเลือกใช้ในการสร้าง Api ครับคือ Rest (Representational State Transfer) ก็ทำงานไม่ต่างกันมากครับ แต่จะช่วยเราจัดการพวก Header ของ HTTP Reponse Code พวก 200,300,400,500 code เหล่านี้นั้นเองครับ เครื่องมือ Postman ขอแนะนำเลยว่าควรค่าอย่างยิ่งสำหรับผู้ที่สร้าง Api เป็นของตัวเอง
0 ความคิดเห็น:
แสดงความคิดเห็น