ฉันพยายามเข้าใจว่า GraphQL เหมาะสมที่สุดที่จะใช้ภายในสถาปัตยกรรม Microservice หรือไม่
มีการถกเถียงกันเกี่ยวกับการมีสกีมา GraphQL เพียง 1 ตัวที่ทำหน้าที่เป็น API เกตเวย์เป็นผู้รับการร้องขอไปยังไมโครไซต์เป้าหมายและบีบบังคับการตอบสนองของพวกเขา Microservices ยังคงใช้โปรโตคอล REST / Thrift สำหรับการสื่อสารความคิด
อีกวิธีหนึ่งคือการมีหลาย ๆ สโคป GraphQL หนึ่งรายการต่อ microservice แทน มีเซิร์ฟเวอร์ API เกตเวย์ขนาดเล็กกว่าซึ่งกำหนดเส้นทางการร้องขอไปยัง microservice เป้าหมายด้วยข้อมูลทั้งหมดของคำขอ + แบบสอบถาม GraphQL
แนวทางที่ 1
การมี 1 GraphQL Schema เป็น API Gateway จะมีข้อเสียที่ทุกครั้งที่คุณเปลี่ยนอินพุต / เอาต์พุตสัญญา microservice ของคุณเราต้องเปลี่ยน GraphQL Schema ตามด้าน API Gateway
แนวทางที่ 2
หากใช้หลาย GraphQL Schema ต่อ microservices ให้เหตุผลเพราะ GraphQL บังคับใช้ข้อกำหนด schema และผู้บริโภคจะต้องเคารพอินพุต / เอาต์พุตที่ได้รับจาก microservice
คำถาม
คุณคิดว่า GraphQL เหมาะสมกับการออกแบบสถาปัตยกรรมบริการไมโครหรือไม่?
คุณจะออกแบบ API Gateway ด้วยการใช้ GraphQL ที่เป็นไปได้อย่างไร