Множественные "прыжки" GraphQL в сквозном потоке? - PullRequest
0 голосов
/ 17 июня 2020

Я работаю над системой уровня предприятия и пытаюсь понять, является ли моя идея сверхнеэффективной.

Наша компания хочет использовать GraphQL, и мы хотим использовать его как способ помочь клиентский интерфейс для извлечения данных, но также как абстракция данных по нашим необработанным данным. Я имею в виду:

  • Если у нас есть GraphQL ближе к клиенту в качестве одного экземпляра (этот сервер GraphQL будет находиться перед нашими службами REST домена), но тогда мы также если GraphQL находится поверх уровня данных, представляет ли это какие-либо проблемы?

enter image description here

Я знаю, что может возникнуть вопрос: «Почему бы и нет у вас есть GraphQL над сервисами домена и GraphQL над данными, но затем объедините их в шлюз, и клиенты будут получать оттуда! " Но один из арендаторов, которого мы придерживаемся в нашей компании, - это . Должна быть абстракция над нашими данными . Итак, мы либо абстрагируем эти данные через REST API (что мы делаем сейчас), либо у нас есть GraphQL над данными и действует как абстракция.

Итак, учитывая это требование «абстракции данных», я хочу понять, есть ли какие-либо проблемы с двумя «переходами» / экземплярами GraphQL в сквозном потоке?

1 Ответ

1 голос
/ 17 июня 2020

Это распространенный образец. Мы использовали это для наших серверных служб, которые получили graphql на уровне домена, а затем использовали prisma для уровня данных.

Из нашего опыта у меня есть две рекомендации.

  • Постарайтесь, насколько это возможно, автоматически сгенерировать как ваши преобразователи, так и API данных с помощью инструмента c, указанного на языке.
  • Проведите тестирование на уровне домена, чтобы убедиться, что ничего из слой данных проскальзывает. Будет заманчиво выполнить простые "сквозные" запросы, поскольку две схемы часто начинают синхронизироваться, и вы можете случайно передать данные, которые вы не хотите передавать клиенту.

(Бесстыдный плагин!) Для второго Meeshkan выполняет такого рода тестирование в автоматическом режиме, и есть множество тестовых фреймворков, которые вы также можете использовать для выполнения рукописных тестов (ie огурец .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...