Зачем использовать Prisma в бэкэнд-среде? - PullRequest
1 голос
/ 05 марта 2019

После изучения GraphQL и использования его в нескольких проектах я наконец-то хотел попробовать Prisma .Он обещает устранить необходимость в базе данных и генерирует клиент GraphQL и рабочую базу данных из схемы GraphQL.Пока все хорошо.

Но мой вопрос таков: клиент GraphQL мне действительно кажется полезным только для клиента (предотвращение перегрузки, ускорение страниц, интеграция React, ...).Prisma, однако, не устраняет необходимость в бизнес-логике, и поэтому в конечном итоге можно использовать сгенерированную клиентскую библиотеку в Node.js, просто чтобы переэкспортировать большую часть функциональности еще одного сервера GraphQL на реального клиента.

* 1006Почему я предпочитаю Prisma, а не решение для пользовательских баз данных?Есть ли мысль о необходимости повторно выставлять множество конечных точек фактическому клиенту?

Ответы [ 2 ]

3 голосов
/ 05 марта 2019

Я работаю в Prisma и хотел бы уточнить это!

Вот краткое замечание: Prisma - это не инструмент GraphQL-as-a-Service (в отличие от Graphcool, AppSync или Hasura).являются).Клиент Prisma - это не «клиент GraphQL», это клиент базы данных (аналог ORM).Таким образом, причина неиспользования клиента Prisma во внешнем интерфейсе та же, что и для того, почему бы вам не использовать ORM или не подключаться к БД напрямую из внешнего интерфейса.

Это обещает устранитьнужна база данных, и он генерирует клиент GraphQL и рабочую базу данных из схемы GraphQL.Пока все хорошо.

Мне действительно любопытно услышать, откуда именно у вас это восприятие!Мы хорошо понимаем, что нам нужно улучшить наше общение о ценности, которую обеспечивает Prisma, и о том, как она работает.То, что вы сформулировали, - это чрезвычайно распространенное заблуждение о Призме, которое мы хотим предотвратить в будущем.На самом деле мы планируем опубликовать пост в блоге на эту тему на следующей неделе, надеюсь, это многое прояснит.

Чтобы поднять конкретные моменты:

  • Prisma неустранить необходимость в базе данных.Подобно ORM, клиент Prisma используется для упрощения доступа к базе данных.Это также облегчает миграцию базы данных с помощью декларативного подхода к моделированию и миграции данных (в настоящее время мы работаем над значительными улучшениями нашей системы миграции, вы можете найти RFC для нее здесь ).
  • Еще одним важным преимуществом Prisma является грядущий Prisma Admin, инструмент управления данными.Первый предварительный просмотр будет доступен на следующей неделе.
2 голосов
/ 05 марта 2019

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

  • Prisma действует как прокси для вашей базы данных, предоставляя вам готовый к использованию GraphQL API, который позволяет фильтровать и сортировать данные вместе снекоторые пользовательские типы, такие как DateTime, которые не являются частью graphql, и вам бы пришлось реализовать их самостоятельно.Это не сервер GraphQL.Просто слой между вашей базой данных и внутренним сервером, такой как ORM.

  • Он охватывает практически все возможные варианты использования, которые могут возникнуть в модели данных со всеми CRUD операции, предопределенные в схеме вместе с подписками , поэтому вам не нужно делать все эти вещи и уделять больше внимания аспектам своей бизнес-логики.

  • Также это устраняет зависимость написания вами разных запросов для разных баз данных, таких как Sql или MongoDb, выступающих в качестве слоя для преобразования языка запросов в реальные запросы к базам данных.

  • Вы можете использовать API (graphql) сервер для предоставления клиенту только желаемой схемы, а не всего.Так как запросы graphql могут быть сильно вложенными, может быть сложно и сложно реализовать то, что также может привести к проблемам с производительностью, чего не происходит в Prisma, поскольку он обрабатывает все сам.

Youможете проверить эту статью для получения дополнительной информации.

...