ลูกค้าควรเรียกพวกเขาโดยตรงเพื่อรับข้อมูลที่จำเป็นในการโหลดหน้าเว็บบนไคลเอนต์หรือไม่
มันขึ้นอยู่กับ; อย่างไรก็ตามฉันขอแนะนำให้มอบความสามารถที่ใช้งานได้โดยตรงให้กับลูกค้าและซ่อน (ห่อหุ้ม) รายละเอียดของการรวมผลลัพธ์ (เช่นผ่านบริการไมโครหลายรายการ)
หากตรรกะมากเกินไปเกี่ยวข้องกับการรวมผลลัพธ์ micro-service แต่ละรายการโดยไคลเอนต์นั่นอาจทำให้ตรรกะทางธุรกิจบางอย่างคลานเข้ามาในไคลเอนต์โดยไม่ได้ตั้งใจ นอกจากนี้ยังสามารถเปิดเผยสถาปัตยกรรมภายในของคุณให้กับลูกค้าได้มากกว่าที่คุณต้องการโดยขัดขวางการปรับโครงสร้างไมโครไซต์ในภายหลัง
ดังนั้นนั่นหมายความว่าด้วย microservices บางครั้งมันมีประโยชน์ที่จะมี microservice wrapper ที่ช่วยให้ลูกค้ามีจุดปลายที่มี abstractions ที่เป็นประโยชน์และมีการประสานงานระดับสูงของ microservices อื่น ๆ
(นอกจากนี้การไปกลับไปยังลูกค้าอาจมีราคาแพงกว่าจากไมโครไซต์ของคุณซึ่งกันและกัน)
ตัวอย่างเช่นหากคุณดูทิศทางที่ดำเนินการโดย GraphQL คุณจะพบว่าลูกค้าที่ออกข้อความค้นหาที่เกี่ยวข้องโดยตรงไปยังจุดสิ้นสุดซึ่งอาจนำไปใช้หรืออาจไม่ได้นำไปใช้เป็นชุดของ micrservices เนื่องจากสถาปัตยกรรมของ microservices ถูกซ่อนอยู่ด้านหลัง GraphQL ทำให้สถาปัตยกรรมสามารถปรับโครงสร้างได้ง่ายขึ้นและเป็นมิตรกับลูกค้า ดูตัวอย่างเช่นhttps://stackoverflow.com/a/38079681/471129