@graphql_ru
GraphQL — русскоговорящее сообщество

Общаемся на темы, посвященные GraphQL и опыту его использования. Проблемы. Новости. Решения. Вам могут быть полезны: @apollo_ru, @react_js, @vuejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание в чате было полезным и комфортным.

352 members

Архив канала @graphql_ru 30 августа 2018 г.

01:47:29 ПП
User 379833517
graphql-ts кто пробовал, норм ?
01:52:45 ПП
User 241912341
Добавлю вопрос: что вы думаете про TypeORM? Имеет ли смысл использовать с GraphQL или там нагружается БД отдельными запросами?
01:54:30 ПП
User 206966715
User 241912341
Добавлю вопрос: что вы думаете про TypeORM? Имеет ли смысл использовать с GraphQL или там нагружается БД отдельными запросами?
Я на нем пет-проект пилю и небольшой сервис в прод пустил. По-хорошему надо бы query builder из него юзать, но я обошёлся одним ActiveRecord
01:55:27 ПП
User 241912341
Как билдер может сосуществовать с графом, если выборка заказывается клиентом?
01:55:37 ПП
User 379833517
примеры с ним в nestjs есть
01:55:58 ПП
User 206966715
Писал под graphql tools, и пришлось частично дублировать себя, прописывая тайпинги для резолверов, сами энтити, а потом ещё и типы
01:55:59 ПП
User 241912341
Спасибо, сейчас гляну
01:57:38 ПП
User 241912341
Что вообще лучше использовать для БД вместе с GraphQL? Может есть варианты получше?
01:57:49 ПП
User 241912341
* на ноде
01:57:52 ПП
User 206966715
User 241912341
Как билдер может сосуществовать с графом, если выборка заказывается клиентом?
Из орм тащишь все поля наряду с айдишниками, а граф уже фильтрует для клиента
01:59:02 ПП
User 241912341
А если там массив данных, предполагается подтягивать все зависимости? Так можно перегрузить оперативу, если имеем дело с длинными логами
01:59:59 ПП
User 99248986
вот кто юзает орм + графкуель мне кажется прямой путь в призму все-таки
02:03:08 ПП
User 206966715
User 99248986
вот кто юзает орм + графкуель мне кажется прямой путь в призму все-таки
Ну мы только что спорили с тех. диром, т.к. мне не нравился вид мутаций, которые я должен юзать на фронте. Они сделали суперуниверсальную таблицу для хранения заказов, и мне было непонятно, что отправлять в инпут. Сошлись на том, что БД остаётся прежней, а резолвер бьём на несколько. С призмой бы не вышло
02:04:45 ПП
User 241912341
А почему нет? Что мешает 2 мутации сделать?
02:04:47 ПП
User 99248986
User 206966715
Ну мы только что спорили с тех. диром, т.к. мне не нравился вид мутаций, которые я должен юзать на фронте. Они сделали суперуниверсальную таблицу для хранения заказов, и мне было непонятно, что отправлять в инпут. Сошлись на том, что БД остаётся прежней, а резолвер бьём на несколько. С призмой бы не вышло
да они вроде поддерживают кастомные резолверы, но я не юзал, могу ошибаться
02:06:12 ПП
User 241912341
Я тоже не юзал, но сейчас штудирую документацию. Если б там не было кастомных резолверов, призма бы не выжила из-за проблем с безопасностью.
02:16:12 ПП
User 206966715
Да, было бы странно не иметь такой фичи. Но если вернуться к тему ОРМ, они ведь уже давно предоставляют инструменты для решения проблем, за которые их раньше хаяли. Например, "данные описывай в своих любимых классах, а запросы пиши сам, если не доверяешь. Через тот же квери билдер"
02:16:44 ПП
User 206966715
И инструменты для миграций есть из коробы
02:16:57 ПП
User 241912341
С рестом это сработает, с графом нет
02:17:04 ПП
User 241912341
или я чего-то не понимаю)
02:17:38 ПП
User 206966715
Тут же не об АПИ речь, а о data access layer
02:18:10 ПП
User 241912341
Вспомнил, что есть join-monster
https://join-monster.readthedocs.io/en/latest/

Он умеет делать join-ы, но я не вижу возможности подписываться на обновления
join-monster.readthedocs.io/en/latest
A GraphQL-to-SQL execution layer.
02:35:20 ПП
User 23619976
что-то он походу только с пг по полной работает
02:35:41 ПП
User 23619976
с мускулом недоделано
02:36:06 ПП
User 23619976
https://join-monster.readthedocs.io/en/latest/dialects/
03:23:32 ПП
User 241912341
А кто вообще использует Prisma? В каком она состоянии? Имеет ли смысл сейчас использовать?
03:29:42 ПП
User 241912341
Какие ещё есть альтернативы? Что вы используете? 
Ручной вариант прошу не рассматривать, оставим на крайний случай
03:43:04 ПП
User 23619976
хз.. крайние мнения на её счёт
03:43:24 ПП
User 23619976
пока остановился на sequelize + sequelize-graphql
03:45:42 ПП
User 23619976
хотя у меня лямбды, не хочется плодить зоопарк зависимостей
03:46:11 ПП
User 23619976
хотя не стоило тогда бы писать на node, но это другая история
03:51:26 ПП
User 99248986
User 241912341
Какие ещё есть альтернативы? Что вы используете? 
Ручной вариант прошу не рассматривать, оставим на крайний случай
https://github.com/graphile/postgraphile
github.com/graphile/postgraphile
Execute one command (or mount one Node.js middleware) and get an instant high-performance GraphQL API for your PostgreSQL database! - graphile/postgraphile
07:05:51 ПП
User 241912341
Теперь, когда в целом разобрался с этим новшеством, задался вопросом: а в каких случаях вообще имеет смысл использовать GraphQL и когда лучше обойтись старым добрым REST?
07:06:35 ПП
User 23619976
это ты должен ответить сам))
07:07:45 ПП
User 241912341
Мне интересно узнать уже сформированное мнение тех, кто уже использует это на практике
07:08:47 ПП
User 91681903
В некоторых случаях можно использовать как прослойку между api-gateway и нижестоящими сервисами (не важно как они написаны как restful или как graphql)
07:09:45 ПП
User 206966715
Ну, я сегодня заценил новую версию мобильного сайта Хабра и посмеялся
07:10:07 ПП
User 206966715
На главную страницу прилетает 40кб жсона с данными
07:10:28 ПП
User 206966715
Ответ РЕСТа с полностью развернутыми сущностями)
07:14:12 ПП
User 91681903
https://labs.getninjas.com.br/sharing-data-in-a-microservices-architecture-using-graphql-97db59357602
labs.getninjas.com.br/sharing-data-in-a-microservices-architecture-using-graphql-97db59357602
REST APIs, GraphQL, Synced Databases, API Gateways, Queues, We’ll explore some ways to integrate components of a Microservices architecture…
07:14:55 ПП
User 23619976
бгг по идее компоненты на фронте должны по надобности подгружать
07:15:28 ПП
User 99248986
User 241912341
Теперь, когда в целом разобрался с этим новшеством, задался вопросом: а в каких случаях вообще имеет смысл использовать GraphQL и когда лучше обойтись старым добрым REST?
https://medium.com/@raxwunter/moving-existing-api-from-rest-to-graphql-205bab22c184
medium.com/@raxwunter/moving-existing-api-from-rest-to-graphql-205bab22c184
So last 6 months I saw talks about GraphQL at almost every conference related to web development. A lot of posts and articles are issued…
07:15:52 ПП
User 99248986
Но там только часть ответа на вопрос
07:18:29 ПП
User 99248986
Вообще я уже человекам 6 пытался объяснить и каждый раз это фейл. Слишком простая (сразу следуют ложные воды), гениальная и многослойная (до сих пор осознаю какие-то тонкости, а новые применения и тулзы выходят чуть не каждый месяц) вещь для понимания
07:40:19 ПП
User 144022504
User 241912341
Теперь, когда в целом разобрался с этим новшеством, задался вопросом: а в каких случаях вообще имеет смысл использовать GraphQL и когда лучше обойтись старым добрым REST?
Для real-time приложений, так на клиенте возиться с REST API боль еще та.
07:54:10 ПП
User 144022504
User 241912341
Действия такие:
$ graphql create . -b typescript-advanced
$ prisma init .
- Create new database
- PostgreSQL

$ docker-compose up
$ prisma deploy
$ npm run dev

Создаётся проект, который содержит контейнер с локальной базой, но по прежнему работает через prisma cloud. 
Заменил в ".env": PRISMA_ENDPOINT="http://localhost:4466"
Докер начал печатать логи - вроде подключился, но по прежнему не работает:

... запрос ...
query {
  feed {
    title
  }
}

... ответ ...
{
  "data": null,
  "errors": [
    {
      "message": "Variable '$_v0_where' cannot be non input type 'PostWhereInput'. (line 1, column 20):\nquery ($_v0_where: PostWhereInput) {\n                   ^",
      "locations": [],
      "path": [
        "posts"
      ]
    }
  ]
}

Кроме этого, докер периодически пишет в консоль это:
[Metrics] No Prisma Cloud secret is set. Metrics collection is disabled.
(непонятно вообще, как докер связан с облаком)
Извиняюсь, что сразу не ответил. Вы решили задачу?
07:54:25 ПП
User 144022504
User 241912341
Кстати, спасибо за уроки по ReactNative, посмотрю в ближайшее время)
🙏🏻
07:55:50 ПП
User 241912341
Задачу не решил, пока задумался над тем, чтобы отказаться от Призмы из-за сложности. Если можете помочь, будет здорово)
07:58:00 ПП
User 51988441
User 241912341
Задачу не решил, пока задумался над тем, чтобы отказаться от Призмы из-за сложности. Если можете помочь, будет здорово)
Она очень простая
07:58:04 ПП
User 51988441
Прям изи
07:58:35 ПП
User 51988441
Ты все руками можешь настроить
07:58:43 ПП
User 144022504
User 241912341
Задачу не решил, пока задумался над тем, чтобы отказаться от Призмы из-за сложности. Если можете помочь, будет здорово)
После курса по Redux, буду делать Prisma + GraphQL(Apollo) + React Native
07:58:51 ПП
User 51988441
Посмотри, как настроить без генерации руками
07:59:29 ПП
User 51988441
User 144022504
После курса по Redux, буду делать Prisma + GraphQL(Apollo) + React Native
Лучше просто, глубокий rn сделай
07:59:54 ПП
User 51988441
И подкачай работу с нашивными модулями, типо pan response, и нативное апи
08:00:01 ПП
User 51988441
Это будет куда полезнее
08:00:12 ПП
User 51988441
Так как нет нормальный туторов
08:01:07 ПП
User 144022504
User 51988441
И подкачай работу с нашивными модулями, типо pan response, и нативное апи
я ближе к серверу, чем к нативному API, поэтому люблю этот чат)
08:06:52 ПП
User 51988441
User 144022504
я ближе к серверу, чем к нативному API, поэтому люблю этот чат)
Лучше бы погрузился, в react native, чем на все распыляться)
08:12:04 ПП
User 144022504
User 51988441
Лучше бы погрузился, в react native, чем на все распыляться)
react-native по сути только View 
Управление состоянием Apollo или Redux State 
На сервере Model 
Три кита, поэтому мой приоритет сейчас сфокисироваться на этих  технологиях: React Native - Apollo - Prisma
08:13:14 ПП
User 51988441
User 144022504
react-native по сути только View 
Управление состоянием Apollo или Redux State 
На сервере Model 
Три кита, поэтому мой приоритет сейчас сфокисироваться на этих  технологиях: React Native - Apollo - Prisma
Плохая идея, знания на поверхности не когда не сделает из тебя хорошего специалиста, а распыляться на все это плохо
08:13:28 ПП
User 144022504
… и сфокусироваться на JS, а то там распыление начнется Java, Swift …
08:13:49 ПП
User 51988441
User 144022504
… и сфокусироваться на JS, а то там распыление начнется Java, Swift …
Нет, тебя же не кто не просит писать нативные модули
08:14:16 ПП
User 51988441
Сорри за офтоп
08:16:28 ПП
User 144022504
User 51988441
Нет, тебя же не кто не просит писать нативные модули
Вы забыли что я фанат vim, поэтому бэкенд всегда был со мной 😅
08:17:42 ПП
User 51988441
User 144022504
Вы забыли что я фанат vim, поэтому бэкенд всегда был со мной 😅
Причём тут вим и бэкэнд
08:18:14 ПП
User 144022504
User 51988441
Причём тут вим и бэкэнд
Xcode)
08:19:00 ПП
User 51988441
User 144022504
Xcode)
Окей, писать код ты можешь где угодно, и даже без xcode
08:19:36 ПП
User 51988441
Есть специальные консольные команды, при помощи которых ты можешь сгенерировать проект
08:19:41 ПП
User 51988441
И даже собрать
08:20:16 ПП
User 144022504
User 51988441
И подкачай работу с нашивными модулями, типо pan response, и нативное апи
> нативное апи
к этому

сорри оффтоп, предлагаю в личке продолжить)
08:20:27 ПП
User 51988441
User 144022504
> нативное апи
к этому

сорри оффтоп, предлагаю в личке продолжить)
Погнали
08:44:23 ПП
User 144022504
User 99248986
https://github.com/graphile/postgraphile
github.com/graphile/postgraphile
Execute one command (or mount one Node.js middleware) and get an instant high-performance GraphQL API for your PostgreSQL database! - graphile/postgraphile
t.me/graphql_ru/4995
t.me/graphql_ru/4995
серьезный недостаток, это отсутствие подписок.