Size: a a a

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

2021 June 08

i

ilya the 大佬 in GraphQL — русскоговорящее сообщество
ага ну у меня как раз кейс с бесконечным скроллом, а в случае с курсором limit на стороне сервера задается же? имею в виду какое количество элементов скачается на стороне сервера установлено
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
нет, в спецификации курсоров есть два аргумента для каждого типа пагинации (forward и backward)
источник

NM

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

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
вместо limit — first или last
источник

i

ilya the 大佬 in GraphQL — русскоговорящее сообщество
хм а в примере аполло вот так почему-то

query LaunchList($cursor: String) {
 launches(after: $cursor) {
   cursor
   hasMore
   launches {
     id
     site
     mission {
       name
       missionPatch(size: SMALL)
     }
   }
 }
}
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
я apollo никогда не пользовался, так что не могу сказать точно. Я опираюсь только на официальную спецификацию relay https://relay.dev/graphql/connections.htm#sec-Arguments
источник

i

ilya the 大佬 in GraphQL — русскоговорящее сообщество
хм окей понял спасибо
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
я думаю, тут может быть опущен аргумент first и использоваться дефолтный с сервера. Не обязательно его передавать
источник

i

ilya the 大佬 in GraphQL — русскоговорящее сообщество
еще вопрос, когда я делаю запрос требующий user id, (например список favorites (избранных) для текущего юзера), я могу что-то типа такого заюзать?

courses {
  favorites(where: {user_id:_eq:"x-hasura-user-id"}) {
      course_id
  }
}


имею в виду у GraphQL есть функционал где я могу сделать запрос и граф кл сам разрулит юзер айди?
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
обычно, для того чтобы получать какую-то инфу по текущему пользователю, делается поле viewer, который возвращает тип User

{
 viewer {
   favorites {
      course_id
  }
 }
}
источник

i

ilya the 大佬 in GraphQL — русскоговорящее сообщество
это ты тоже на сайте который ты скинул прочитал?
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
не, там это не регламентируется)
источник

NM

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

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
можно кстати ещё тут почитать
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
у GitHub подобным образом сделано
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
в своих проектах тоже так делаем
источник

i

ilya the 大佬 in GraphQL — русскоговорящее сообщество
👍
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
написали статейку про GraphQL Global Object Identification, возможно вам будет интересно почитать :)
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Отличная статья 👍

Было бы здорово, если бы в статью добавили пункт про безопасность.

Чтоб не забывали проверять права на тот или иной объект. А то перебором можно получить чужие данные.

PS. я не использую глобальные айдишники
- они страшные
- кеш у аполло клиента прекрасно работает и без этого
источник

NM

Nikita Melnikov in GraphQL — русскоговорящее сообщество
Спасибо)

Страшные, да. Не стоит такие пользователю показывать)

А как аполло клиенту это удаётся?
источник