Bidrar med sidhämtningsfunktion, för att stegvis kunna hämta ut inkrementer av resultat, från databasen, via speciella parametrar till APIn.
API URI ser nu ut på följande vis:
/components/?offset=X&amount=Ysort=Column&order=asc
/licenses/?offset=X&amount=Ysort=Column&order=asc
/products/?offset=X&amount=Ysort=Column&order=asc
/projects/?offset=X&amount=Ysort=Column&order=asc
offset: antalet hittills hämtade element
amount: antalet element från offset, som skall hämtas
sort: kan anta följande värden: xName, xVersion, dateCreated, lastEdited
(där x antingen är license, component, product, project)
Vid returnering av data från ett anrop till API'n, så skickas en payload struktur, som innehåller följande information:
{ // a default payload, can/should be extended
items: [], // array av element returnerade från databasen
links: {
prev: `?offset=0&amount=${DEFAULTPAYLOADSIZE}`, // föregående inkrement av hämtning
current: `?offset=0&amount=${DEFAULTPAYLOADSIZE}`, // nuvarande plats i databasen
next: `?offset=0&amount=${DEFAULTPAYLOADSIZE}` // kommande element som ska hämtas
},
sort: {
column: `&sort=${type}Name`, // default värdet för sortering är namn-kolumnen
order: `&order=asc` // default värdet för ordning är stigande
},
meta: {
current: int, // samma som offset-värdet i links.current
count: int // totala mängden element i databasen som finns för den sökning / hämtning som gjorts
},
errors: {
message: [], // meddelande vid eventuellt error
status: string // status-meddelanden (används f.n. ej)
},
errorflag: bool // om ett error skett
}
}
Det är med hjälp av den returnerade payloaden som frontend, sedan kan anropa backend med rätt offset/amount osv, för att få efterkommande element osv. Inuti payload-objektet finns ett links-objekt som innehåller context-data som beskriver vart i databasen "man" befinner sig nu.
Ta bort alternativ som inte är relevanta.
[x] Ny funktion (icke-brytande förändring som lägger till funktionalitet)
[x] Brytande förändring (fix eller funktion som skulle leda till att befintlig funktionalitet inte fungerar som förväntat)
[x] Denna ändring kräver en dokumentationsuppdatering
Hur har detta blivit testat?
Tillsammans med teammedlem
@sunnanv
Checklista:
[x] Min kod följer stilriktlinjerna för detta projekt
[x] Jag har utfört en egen granskning av min egen kod
[x] Jag har kommenterat min kod, särskilt i svårförståeliga områden
Beskrivning
Bidrar med sidhämtningsfunktion, för att stegvis kunna hämta ut inkrementer av resultat, från databasen, via speciella parametrar till APIn.
API URI ser nu ut på följande vis: /components/?offset=X&amount=Ysort=Column&order=asc /licenses/?offset=X&amount=Ysort=Column&order=asc /products/?offset=X&amount=Ysort=Column&order=asc /projects/?offset=X&amount=Ysort=Column&order=asc
/components/search/?offset=X&amount=Ysort=Column&order=asc /licenses/search/?offset=X&amount=Ysort=Column&order=asc /products/search/?offset=X&amount=Ysort=Column&order=asc /projects/search/?offset=X&amount=Ysort=Column&order=asc
/components/pending/?offset=X&amount=Ysort=Column&order=asc /licenses/pending/?offset=X&amount=Ysort=Column&order=asc /products/pending/?offset=X&amount=Ysort=Column&order=asc /projects/pending/?offset=X&amount=Ysort=Column&order=asc
/components/pending/search/?offset=X&amount=Ysort=Column&order=asc /licenses/pending/search/?offset=X&amount=Ysort=Column&order=asc /products/pending/search/?offset=X&amount=Ysort=Column&order=asc /projects/pending/search/?offset=X&amount=Ysort=Column&order=asc
offset: antalet hittills hämtade element amount: antalet element från offset, som skall hämtas sort: kan anta följande värden: xName, xVersion, dateCreated, lastEdited (där x antingen är license, component, product, project)
Vid returnering av data från ett anrop till API'n, så skickas en payload struktur, som innehåller följande information:
Det är med hjälp av den returnerade payloaden som frontend, sedan kan anropa backend med rätt offset/amount osv, för att få efterkommande element osv. Inuti payload-objektet finns ett links-objekt som innehåller context-data som beskriver vart i databasen "man" befinner sig nu.
Ta bort alternativ som inte är relevanta.
Hur har detta blivit testat?
Tillsammans med teammedlem @sunnanv
Checklista: