Używam określonego punktu końcowego GraphQL i chociaż dostarczam czystą strukturę JSON jako zapytanie, kiedy otrzymuję wyniki, otrzymuję tagi „krawędzi” i „węzła”. Wygląda na to, że zanieczyszcza moje dane bez oczywistych korzyści. Dlaczego tam jest i czy można się ich pozbyć w celu szybszego i prostszego analizowania danych?
103
Odpowiedzi:
Zacznijmy od krótkiego wprowadzenia prostymi słowami
Dane techniczne przekaźnika GraphQl
Znajomości:
edges
,pageInfo
...pageInfo będzie zawierać
hasNextPage
,hasPreviousPage
,startCursor
,endCursor
hasNextPage
powie nam, czy jest więcej dostępnych krawędzi, czy też osiągnęliśmy koniec tego połączenia.Tablica rekordów: krawędzie
GraphQLList
ale bez funkcjonalności takiej jak paginacja, tylko z tablicą obiektów (danych)Każda krawędź ma
node
: rekord lub danecursor
: ciąg zakodowany w base64, aby pomóc w przekazywaniu z paginacjąhttps://facebook.github.io/relay/graphql/connections.htm
Węzeł:
connectionArgs(first, last, after, before)
Relay Pagination działa jako
Pobiera wszystkie obiekty w kolekcji i zwraca wycinek na podstawie
first/last
rekordów x używanych przez connectionArgsafter/before
służą do wskazywania serwerowi GraphQL liczby wymaganego wycinka (danych) za pomocą kursora z węzłaIstnieje wiele innych rzeczy do rozważenia, jak
nodeDefinitions
,globalFieldId
,nodeInterfaces
https://github.com/graphql/graphql-relay-js#object-identification
źródło
each node will have a cursor
raczej nie odsyłajeach edge will have a cursor
tego blog.apollographql.com/…