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óint | Cineál | Tuairisc |
|---|---|---|
first | Int | Líon na míreanna le filleadh as an tús |
after | ID | Crosúr chun tosú i ndiaidh (le leathnú ar aghaidh) |
last | Int | Líon na míreanna le filleadh ón deireadh |
before | ID | Crosú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).
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,activityConnectionOrganisation.groupConnection,dataStopConnection,dataDeletionConnection,retentionConnection,userConnection,invoiceConnection,dataSubjectConnectionBatch.documentConnectionBilling.invoiceConnectionInvoice.lineItemConnectionTemplate.elementConnection,userSignatureConnectionDocument.elementConnectionRecipient.elementConnectionUser.memberConnection,organisationConnection,supportTicketConnection