#angular #graphql
#angular #graphql
Вопрос:
Моя компания разрабатывает веб-приложения, вызывающие микросервисы в REST. Моя команда хочет начать с наших первых сервисов GraphQL.
Было бы плохой практикой разрабатывать несколько новых сервисов и вызывать их внутри нашего существующего приложения Angular 9, которое включает в себя множество конечных точек REST? (Мы будем использовать как REST, так и GraphQL в наших проектах)
PD: Я спрашиваю об этом, потому что я видел «шаблон шлюза GraphQL» в качестве решения в большинстве подобных случаев использования, я хотел узнать ваше мнение и имеет ли смысл использовать как REST, так и GraphQL на первом этапе.
Большое спасибо!
Ответ №1:
Действительно приятно знать, что вы начинаете с GraphQL.
прежде чем перейти к ответу, мы также столкнулись с такой ситуацией в нашей организации. у нас была похожая микросервисная архитектура, и мы создали новый сервис graphql для нескольких функций и связанных с ним случаев использования.
как мы знаем, REST — это стиль архитектуры для API, который позволяет нам следовать хорошей практике.
С другой стороны, Graphql — это язык выборки данных, который позволяет клиентам декларативно описывать свои требования к данным в формате, подобном JSON. Кроме того, GraphQL не зависит от базы данных. Его дизайн позволяет работать с любыми типами баз данных.
главное, что нужно иметь в виду, это то, что GraphQL решает многие проблемы, но не все. возможно, вы уже знаете.
в нашем случае мы использовали graphql для получения данных из разных веб- и телефонных приложений соответственно в одной конечной точке. мы хотели показать несколько точек данных в веб-приложении, в то время как в приложении phone мы хотели показать разные. мы также продолжали использовать несколько конечных точек REST, которые имели более высокий уровень безопасности.
это совершенно нормально, если вы использовали оба в приложении. Никаких проблем с обработкой вашего приложения angular не возникнет. создайте общий служебный файл в angular, который обрабатывает запросы и ответы graphql.
Я также наткнулся на несколько демонстраций graphql и rest, где компании используют оба, например, когда вы изменяете данные через GraphQL, распознаватель перенаправляет ваш запрос на контроллер REST. Если вы добавили политики, правила аутентификации или проверки для действия этого контроллера, они будут разрешены.