Отделите код GraphQL-AppSync-Schema-Resolver от кода UI ReactJS

#reactjs #graphql #aws-appsync #aws-amplify

#reactjs #graphql #aws-appsync #aws-amplify

Вопрос:

Я разрабатываю приложение на основе ReactJS-GraphQL-aws appsync. сборка и настройка основаны на aws amplify. в настоящее время все находится в том же исходном коде. можем ли мы иметь отдельный пакет для пользовательского интерфейса и серверной части.

например, React -redux и все материалы пользовательского интерфейса будут находиться в одном репозитории кода / пакете. и связанный с GraphQL-appsync resolver код будет находиться в отдельной базе кода или отдельном репозитории кода. и если да, не могли бы вы подробнее объяснить, как это сделать. или вы думаете, что это хороший вариант для разделения пользовательского интерфейса и серверной части.

Пожалуйста, дайте мне знать, правильно ли я это объяснил.

Ответ №1:

Если вы не планируете использовать один клиент ReactJS, то я не думаю, что необходимо разделять кодовую базу. Самое замечательное в amplify заключается в том, что он будет генерировать запросы, мутации, входные данные, фильтры и подписки на основе вашей схемы аннотированного типа. Он поместит это в src папку переднего плана, так что вашим разработчикам переднего плана останется только import { listAllTypes } from '/src/graphql/queries.js' , а затем использовать этот запрос в своем клиентском коде. Разделение не потребуется, потому что ваши интерфейсные разработчики всегда будут работать только в project_root/src каталоге, а ваши серверные разработчики всегда будут работать только в project_root/amplify/backend каталоге. Использование хорошего рабочего процесса git позволит разделить эти проблемы между командами.

Ответ №2:

Если вы планируете использовать одни и те же внутренние ресурсы для питания нескольких интерфейсных приложений, то я думаю, что это хорошая идея перенести его в другой проект. Если вы хотите это сделать, я бы рекомендовал оставить ваш проект Amplify в качестве внутреннего каталога, а затем переместить ваш внешний код в новый проект.

Используете ли вы инструменты Amplify codegen? Команда codegen принимает аргумент —api-id, который теперь можно использовать из интерфейсных проектов, когда вы их разделили.

Комментарии:

1. спасибо за ваше предложение. использование внутренних ресурсов специфично для одного интерфейсного приложения. нет плана для нескольких интерфейсов. в таком случае, как вы думаете, требуется ли кодовая база. я думаю, что если я разделю, то разработчики внешнего интерфейса смогут работать над командой разработчиков внешнего интерфейса и серверной части для ресурсов appsync. что касается вашего другого вопроса, я не использую инструмент amplify codegen.

2. Да, я думаю, что все еще имеет смысл разделить его, особенно если вы хотите, чтобы им управляли несколько команд.

3. опять же, с одной стороны, думая о full stack developer, где каждый должен разрабатывать свои соответствующие компоненты пользовательского интерфейса, а также сквозную серверную часть GraphQL. отрицательной стороной является то, что каждому приходится изучать так много бессерверного технологического стека aws, что хорошо при разработке полного стека, но это может задержать сроки проекта, а также затруднить поддержание общего шаблона в схеме GraphQL. есть мысли?