Я пытаюсь понять, где GraphQL наиболее подходит для использования в архитектуре Microservice.
Есть некоторые споры о наличии только одной схемы GraphQL, которая работает как API-шлюз, передавая запрос целевым микросервисам и заставляя их реагировать. Микросервисы по-прежнему будут использовать протокол REST/Thrift для обмена информацией.
Другой подход - вместо этого иметь несколько схем GraphQL по одной на микросервис. Наличие меньшего сервера API-шлюза, который направляет запрос в целевой микросервис со всей информацией о запросе + запрос GraphQL.
1-й подход
Наличие 1 схемы GraphQL в качестве шлюза API будет иметь обратную сторону: каждый раз, когда вы меняете ввод/вывод контракта на микросервис, мы должны соответствующим образом изменять схему GraphQL на стороне шлюза API.
2-й подход
Если для нескольких микросервисов используется несколько схем GraphQL, имейте в виду, что в GraphQL реализовано определение схемы, а потребителю необходимо учитывать ввод/вывод данных, предоставляемый микросервисом.
Вопросы
Считаете ли вы GraphQL подходящим для проектирования микросервисной архитектуры?
Как бы вы разработали API-шлюз с возможной реализацией GraphQL?