Sleamhnú go príomh-ábhar

Conas a Oibríonn Leathnú Leathanach

Baineann API GraphQL Legalesign úsáid as leathnú leathanaigh bunaithe ar chrosúr de réir na sonraíochta nasc Relay. Úsáidtear an patrún céanna do gach liosta míreanna — doiciméid, teimpléid, teagmhálacha, sonrascanna.

An Patrún Nasc

Tagann an téarmaíocht ón bhfadhbraíocht ghrafaic — is nóid pointí iad, agus is scálaí línte a nascann iad. Sa API, déanann scála cur síos ar an ngaol idir dhá chineál agus is féidir le méata-sonraí breise a iompar (mar shampla, cén ceadanna a bhfuil ag User i ngrúpa Group).

Nuair a bhíonn tú ag iarraidh liosta, ní bhfaigheann tú eagar simplí. Faigheann tú réad nasc le trí chuid:

documentConnection(first: 20) {
documents { ... } # the items (shortcut)
totalCount # total matching items
pageInfo { # pagination cursors
startCursor
endCursor
hasNextPage
hasPreviousPage
}
}

Cén Fáth Nár Eagar Simplí?

Tá leathnú leathanaigh bunaithe ar chrosúr seasmhach. Murab ionann agus leathnú ar bhonn aschuir (page=2), ní bhriseann crosúir má chuirtear míreanna leis nó má bhaintear amach iad idir iarratais. Tá sé sin tábhachtach nuair atá doiciméid á seoladh agus á síniú i bhfíor-am.

An Leathanas Ceannais a Fhaighinn

Úsáid first chun teorainn a chur ar na torthaí. Nuair atá tú ag leathnú tríd an tacar torthaí iomlán de réir a chruthaithe, pasáil "0""START" mar an argóint after ar do ghlao chéaduaire chun a chur in iúl go bhfuil tú ag tosú ar shreangán leathnaithe:

query {
group(id: "grpYourGroupId") {
documentConnection(first: 100, after: "0") {
documents {
id
name
status
created
}
pageInfo {
endCursor
hasNextPage
}
totalCount
}
}
}

An Leathanas Seo a Fhaighinn

Má tá hasNextPage true, pasáil endCursor mar an argóint after:

query {
group(id: "grpYourGroupId") {
documentConnection(first: 100, after: "eyJpZCI6ImRvYzEyMyJ9") {
documents {
id
name
status
created
}
pageInfo {
endCursor
hasNextPage
}
totalCount
}
}
}

Déanaigí an próiseas a athdhéanamh go dtí go mbeidh hasNextPage false.

Argóintí Leathnaithe Leathanaigh

Glacann gach nasc na hargóintí seo:

ArgóintCineálTuairisc
firstIntLíon na míreanna le filleadh as an tús
afterIDCrosúr chun tosú i ndiaidh (le leathnú ar aghaidh)
lastIntLíon na míreanna le filleadh ón deireadh
beforeIDCrosúr chun tosú roimh (le leathnú siar)

Glacann formhór na nascanna freisin argóintí scagaire a bhaineann go sonrach leis an gcineál sonraí. Mar shampla, glacann documentConnection from, to, status, search, sendType, agus sender.

An Geata Scálaí

Cuireann naisc ar fáil iad féin is edges (le crosúr in aghaidh an mhíre) agus liosta gheata. Don chuid is mó cásanna úsáide, tá an geata níos simplí:

# Shortcut — simpler, no per-item cursor
documentConnection(first: 20) {
documents {
id
name
}
pageInfo {
endCursor
hasNextPage
}
}

# Full edges — needed if you want per-item cursors
documentConnection(first: 20) {
edges {
node {
id
name
}
cursor
}
pageInfo {
endCursor
hasNextPage
}
}

Úsáid an geata mura bhfuil tú ag iarraidh crosúir aonair (m.sh. chun mír shonrach a scriosadh agus ansin leanúint ón bpointe sin).

nóta

Fillfidh totalCount an líon sa leathanach reatha, ní an líon iomlán ar gach leathanaigh. Déanann costas ríofa suim dhomhanda d’fhéadfadh bheith i mílte míreanna an iomlán fíor-inacmhainne.

Sampla Saol Fíor

Seo conas a leathnaíonn aip Console Legalesign doiciméid ag úsáid scrolláil gan teorainn le TanStack Query:

query queryInfiniteDocuments {
group(id: "grpYourGroupId") {
documentConnection(
first: 100
after: "eyJpZCI6ImRvYzEyMyJ9"
sendType: SINGLE
from: "2025-01-01T00:00:00Z"
to: "2025-06-01T00:00:00Z"
) {
documents {
id
name
status
senderName
created
recipients {
id
email
status
signedDateTime
}
}
pageInfo {
endCursor
hasNextPage
}
totalCount
}
}
}

Faigheann an aip an chéad leathanach, ansin ar scrolláil úsáideann sé endCursor mar after chun an móide eile a luchtú.

Cén Cineál a Úsáideann Naisc?

Úsáidtear an patrún seo do gach gaol liosta sa API:

  • Group.documentConnection, templateConnection, batchConnection, contactConnection, experienceConnection, scheduleConnection, attachmentConnection, memberConnection, invitationConnection, standardMessageConnection, contactGroupConnection, draftConnection, activityConnection
  • Organisation.groupConnection, dataStopConnection, dataDeletionConnection, retentionConnection, userConnection, invoiceConnection, dataSubjectConnection
  • Batch.documentConnection
  • Billing.invoiceConnection
  • Invoice.lineItemConnection
  • Template.elementConnection, userSignatureConnection
  • Document.elementConnection
  • Recipient.elementConnection
  • User.memberConnection, organisationConnection, supportTicketConnection