Size: a a a

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

2018 December 05

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
Он не лагает хотя бы
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Подводим итог общения с Максимом (api.fastcup.io):
api.fastcup.io):
- 3 человека воевали с GraphQL на бэкенде
- 30 моделей/табличек
- убито времени:
— На призму 5 дней (Итог: просто охерел от того, насколько она популярна при ее днищенской функциональности)
— На джоинмонстер 2 недели (Итог: join-monster тормозной)
— На хазуру 3 дня (Итог: В хазуре все предельно ясно и понятно)
— Переезд 1 неделя с join-monster на hasura (camelCase потеряли, underscore получили)

Disclaimer: Это субъективный опыт одной команды. Объективной оценки вам никто не даст. Кому-то Prisma, либо join-monster может зайти лучше чем Hasura.
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
За призму хз, но вот jm однозначно не зайдет лучше
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
Мы с ним столько намучались
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
Один раз было такое что автор просто не проверял debug.enabled и на каждом запросе в проде выполнялись тяжелые операции по форматированию запросов/ответов в/из базы
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
При том что они не выводились в консоль
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
Это говорит об отношении автора к своему детищу
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Утащил холивар в гитхаб:
https://github.com/nodkz/conf-talks/issues/20
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
Добавил про переезд
источник

g

graphql_bot in GraphQL — русскоговорящее сообщество
prisma/prisma 1.22.0 → 1.22.1 🎉
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
Подливает масла в огонь
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
prisma/prisma 1.22.0 → 1.22.1 🎉
источник

U

Uxname in GraphQL — русскоговорящее сообщество
))
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Maxim Makarov
Добавил про переезд
Там комменты можно редактировать ;) Объединил в один.
Будет что дописать - редактируй коммент. Чтоб ленту не превращать в чат.
источник

MM

Maxim Makarov in GraphQL — русскоговорящее сообщество
Ok
источник

YH

Yevhenii Herasymchuk in GraphQL — русскоговорящее сообщество
Vladyslav Siroshtan
да, загружаю одним запросом 5 пользователей, потом для каждого graphql вызывает резолвер и в каждом из них вызывается
dataloaders.getPostsByUserId.load(parent.id)
@OLDIN_JS  
но почему нельзя прокинуть дальше?
вы же можете делать сами ключи для кеширования в dataloader
https://github.com/facebook/dataloader#new-dataloaderbatchloadfn--options


таким образом можно прокинуть туда что-то такое
{ id: string, config: {...} }

а в функции кеширования использовать только например id
источник

YH

Yevhenii Herasymchuk in GraphQL — русскоговорящее сообщество
Если коротко то вот как-то так будет выглядеть обьявление dataLoader:
getPostsByUserId: new DataLoader(getPostsByUserIdLoader, { cacheKeyFn: (key: {userId: string, config: {limit: number}): string => key. userId }),
источник

YH

Yevhenii Herasymchuk in GraphQL — русскоговорящее сообщество
а в самом getPostsByUserIdLoader()
вы получите в таком виде



async function getPostsByUserIdLoader(keys: Array<{userId: string, config: {limit: number}>) {}
источник

YH

Yevhenii Herasymchuk in GraphQL — русскоговорящее сообщество
и ваш вызов:
dataloaders.getPostsByUserId.load(
   {  
     userId: parent.id,
     config {
        limit: someLimit
     }
)
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Жень, а теперь главный вопрос: как написать такой запрос в базу?
источник