𝗖𝗼𝗹𝗱𝗙𝘂𝗹𝘀𝗶𝗼𝗻 𝗚𝗥𝗔𝗣𝗛𝗤𝗟 𝘃𝘀 𝗥𝗘𝗦𝗧
นักพัฒนา ColdFusion ต้องเผชิญกับทางเลือกที่เฉพาะตัวเมื่อต้องสร้าง API คู่มือส่วนใหญ่มักเปรียบเทียบ GraphQL และ REST ในภาพรวม แต่พวกเขามักมองข้ามความแตกต่างในการจัดการของ ColdFusion
REST เป็นฟีเจอร์แบบ native ใน ColdFusion คุณสามารถสร้าง REST API ได้อย่างง่ายดายโดยใช้ cfcomponent rest="true" และเรียกใช้งานผ่าน cfhttp ซึ่งสามารถทำงานได้ทั้งสองฝั่งโดยไม่ต้องใช้เครื่องมือเพิ่มเติม
GraphQL ทำงานแตกต่างออกไปใน ColdFusion โดยมีลักษณะที่ไม่สมมาตร (asymmetric)
ColdFusion 2023 ได้เปิดตัว GraphQL client แบบ native โดยคุณสามารถใช้ getGraphQLClient() เพื่อสื่อสารกับบริการภายนอกอย่าง GitHub หรือ Shopify ซึ่งวิธีนี้ทำงานได้ดีสำหรับการดึงข้อมูล (consuming data)
อย่างไรก็ตาม ColdFusion ยังไม่สามารถให้บริการ (serve) GraphQL แบบ native ได้ คุณจึงยังไม่สามารถเปิดเผยข้อมูลของคุณเองในรูปแบบ GraphQL endpoint ได้โดยง่าย ซึ่ง Adobe มีแผนที่จะเพิ่มฟีเจอร์นี้ในภายหลัง
หากต้องการสร้าง GraphQL server ใน ColdFusion ในปัจจุบัน คุณต้องดำเนินการด้วยตัวเอง ซึ่งคุณต้องมี:
- Resolver CFCs
- ไลบรารี Java เช่น
graphql-java - หรือการนำ CFML ของบุคคลที่สามมาใช้งาน (third-party CFML implementation)
หมายเหตุ: Native GraphQL client จำเป็นต้องใช้ Adobe ColdFusion 2023 หรือใหม่กว่า และไม่สามารถใช้งานบน Lucee ได้
การตัดสินใจของคุณขึ้นอยู่กับเป้าหมายของคุณ
- ใช้ REST หากคุณต้องการสร้างและเปิดใช้งาน API อย่างรวดเร็ว
- ใช้ GraphQL หากคุณต้องการดึงข้อมูลจากบริการภายนอก
เลือกเครื่องมือที่เหมาะสมกับข้อจำกัดของแพลตฟอร์มที่คุณใช้อยู่ในปัจจุบัน
Optional learning community: https://t.me/GyaanSetuAi