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" nó "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