Cloudflare เปิด Cap'n Web โปรโตคอล RPC ทดแทน GraphQL ระบุเข้าใจง่ายกว่า
Body
Cloudflare เปิดโตรงการ Cap'n Web โปรโตคอลสำหรับการเรียก RPC ระหว่างซอฟต์แวร์ JavaScript/TypeScript ที่เปิดทางให้ไคลเอนต์สามารถเรียกข้อมูลได้ซับซ้อนโดยที่ไม่ต้องเรียก API หลายครั้งแต่ยังสามารถเขียนโปรแกรมได้เป็นธรรมชาติ
ปัญหาการเรียก API หลายครั้งเป็นปัญหาของ REST API ที่หลายโครงการพยายามแก้ไขเพราะการเรียก API จากเซิร์ฟเวอร์นั้นมักใช้เวลานาน เช่น หากมี API GET
ก่อนหน้านี้โครงการ GraphQL พยายามแก้ปัญหานี้ด้วยการเปิดให้ไคลเอนต์คิวรีข้อมูลทั้งหมดที่ต้องการได้เอง แต่ปัญหาสำคัญคือ GraphQL เป็นภาษาของตัวเองต่างจากการพัฒนาเว็บอย่าง JavaScript/TypeScript โดยสิ้นเชิง, และตัวภาษาออกแบบมาเพื่อคิวรีเท่านั้นไม่สามารถดัดแปลงแก้ไขข้อมูลได้เลย
หน้าตา API ของ Cap'n Web นั้นคล้ายกับ REST API ตามปกติ แต่ตัวโปรโตคอลมีสองฟีเจอร์สำคัญ คือ promise pipelining สำหรับการเรียก API หลายๆ ตัวในการเรียกข้ามเครื่องครั้งเดียว และ object references สำหรับการอ้างอิงออปเจกต์ระหว่างการเรียก API ได้ ทำให้โค้ดที่เหมือนเป็นการเรียก API หลายรอบกลับยิง request ผ่านเน็ตเวิร์คเพียงรอบเดียวเท่านั้น
แถวทางการทำ pipeline เปิดทางให้ไคลเอนต์สามารถส่งคำสั่งประมวลผลบางส่วนไปยังเซิร์ฟเวอร์ได้ เช่น คำสั่ง
ตอนนี้โครงการ Cap'n Web ยังเป็นโครงการทดลองเท่านั้น แต่ Cloudflare ก็ใช้งานภายในแล้ว เช่น การทำ remote-binding ใน Wrangler ตัวโครงการเป็นโอเพนซอร์สสัญญาอนุญาต MIT ที่ใช้งานได้อิสระ
ที่มา - Cloudflare
lew Tue, 23/09/2025 - 12:17
Continue reading...
Body
Cloudflare เปิดโตรงการ Cap'n Web โปรโตคอลสำหรับการเรียก RPC ระหว่างซอฟต์แวร์ JavaScript/TypeScript ที่เปิดทางให้ไคลเอนต์สามารถเรียกข้อมูลได้ซับซ้อนโดยที่ไม่ต้องเรียก API หลายครั้งแต่ยังสามารถเขียนโปรแกรมได้เป็นธรรมชาติ
ปัญหาการเรียก API หลายครั้งเป็นปัญหาของ REST API ที่หลายโครงการพยายามแก้ไขเพราะการเรียก API จากเซิร์ฟเวอร์นั้นมักใช้เวลานาน เช่น หากมี API GET
/user
และ /user/friends
เมื่อไคลเอนต์ต้องการรายชื่อผู้ใช้และเพื่อนของแต่ละคนก็ต้องเรียก 2 API แยกจากกัน ทำให้กระบวนการทำงานช้าลงมากก่อนหน้านี้โครงการ GraphQL พยายามแก้ปัญหานี้ด้วยการเปิดให้ไคลเอนต์คิวรีข้อมูลทั้งหมดที่ต้องการได้เอง แต่ปัญหาสำคัญคือ GraphQL เป็นภาษาของตัวเองต่างจากการพัฒนาเว็บอย่าง JavaScript/TypeScript โดยสิ้นเชิง, และตัวภาษาออกแบบมาเพื่อคิวรีเท่านั้นไม่สามารถดัดแปลงแก้ไขข้อมูลได้เลย
หน้าตา API ของ Cap'n Web นั้นคล้ายกับ REST API ตามปกติ แต่ตัวโปรโตคอลมีสองฟีเจอร์สำคัญ คือ promise pipelining สำหรับการเรียก API หลายๆ ตัวในการเรียกข้ามเครื่องครั้งเดียว และ object references สำหรับการอ้างอิงออปเจกต์ระหว่างการเรียก API ได้ ทำให้โค้ดที่เหมือนเป็นการเรียก API หลายรอบกลับยิง request ผ่านเน็ตเวิร์คเพียงรอบเดียวเท่านั้น
แถวทางการทำ pipeline เปิดทางให้ไคลเอนต์สามารถส่งคำสั่งประมวลผลบางส่วนไปยังเซิร์ฟเวอร์ได้ เช่น คำสั่ง
map
ในภาพตัวอย่าง สามารถเรียก API listFriends
มาประกอบกับ getUserPhoto
ได้ภายใน request เดียวเท่านั้นตอนนี้โครงการ Cap'n Web ยังเป็นโครงการทดลองเท่านั้น แต่ Cloudflare ก็ใช้งานภายในแล้ว เช่น การทำ remote-binding ใน Wrangler ตัวโครงการเป็นโอเพนซอร์สสัญญาอนุญาต MIT ที่ใช้งานได้อิสระ
ที่มา - Cloudflare
lew Tue, 23/09/2025 - 12:17
Continue reading...