GraphQL bir Microservice mimarisi içinde kullanmak için en uygun olduğunu anlamaya çalışıyorum.
API Gateway olarak çalışan yalnızca 1 GraphQL şemasına sahip olmak, isteği hedeflenen mikro hizmetlere proxy yapmak ve yanıtlarını zorlamak hakkında bazı tartışmalar vardır. Mikro hizmetler hala iletişim düşüncesi için REST / Thrift protokolünü kullanacaktır.
Başka bir yaklaşım bunun yerine, mikro hizmet başına bir tane birden fazla GraphQL şemasına sahip olmaktır. İsteğin tüm bilgileri + GraphQL sorgusu ile isteği hedeflenen mikro hizmete yönlendiren daha küçük bir API Ağ Geçidi sunucusuna sahip olmak.
1. Yaklaşım
Bir API Ağ Geçidi olarak 1 GraphQL Şemasına sahip olmak, mikro hizmet sözleşmesi giriş / çıkışınızı her değiştirdiğinizde, GraphQL Şemasını API Ağ Geçidi Tarafında buna göre değiştirmemiz gereken bir dezavantaja sahip olacaktır.
2. Yaklaşım
Mikro hizmet başına Çoklu GraphQL Şeması kullanıyorsanız, GraphQL bir şema tanımı uyguladığından ve tüketicinin mikro hizmetten verilen girdi / çıktıya saygı duyması gerektiği için bir şekilde mantıklı olun.
Sorular
GraphQL'i mikro hizmet mimarisi tasarımı için uygun buluyor musunuz?
Olası bir GraphQL uygulamasıyla bir API Ağ Geçidi'ni nasıl tasarlarsınız?