Forespørgselsparametre
Hvert API-slutpunkt understøtter følgende indstillinger via URL-forespørgselsparametre:
Forespørgsel | Standard | Eksempel | Beskrivelse |
|---|---|---|---|
tekst |
| Søger i og filtrerer indhold baseret på den angivne tekst | |
grænse | 10 |
| Begrænser det samlede antal poster, der kan hentes fra endpointet. Maksimumværdien er 20. |
forskydning | 0 |
| Justerer forskydningen af de returnerede elementer |
orderBy | createdAt |
| Du kan sortere entiteter ved at vælge et felt i modellen, der skal sorteres efter |
filter |
| Det er muligt at opbygge og kombinere filtre for at afgrænse det modtagne indhold. | |
felter |
| Ideanote kræver at API-brugeren angiver en kommasepareret liste over felter, der skal returneres. Dette gøres for at sikre ydeevnen og gøre det muligt at udfylde indlejrede entiteter. |
Felter
Ideanote kræver, at API-brugeren angiver en kommasepareret liste over felter, der skal returneres. Dette gøres for at sikre ydeevnen og gøre det muligt at udfylde indlejrede entiteter.
Udfyldning af direkte felter
?fields=id,title,question returnerer følgende JSON-struktur:{
"id": "abc",
"title": "Title",
"question": "Question"
}Det er muligt at udfylde felter direkte på entiteten (se eksemplet).
Du kan finde en oversigt over, hvilke felter du kan udfylde for hver entitet. Du kan for eksempel finde alle felter for entiteten Mission her
Udfyldning af indlejrede felter (punktnotation)
?fields=id,title,cover.kind,cover.url.original returnerer følgende JSON-struktur:{
"id": "abc",
"title": "Title",
"cover": {
"kind": "IMAGE",
"url": {
"original": "https://...."
}
}
}Det er muligt at udfylde indlejrede felter ved hjælp af punktumssyntaks, såsom cover.url.original (se eksempel).
Udfyldning af flere indlejrede felter (krølleparentesnotation)
?fields=id,title,cover.{url.original,kind,fileName} returnerer følgende JSON-struktur:{
"id": "abc",
"title": "Title",
"cover": {
"kind": "IMAGE",
"fileName": "my-file.jpg",
"url": {
"original": "https://...."
}
}
}For nemmere at udfylde flere felter på indlejrede entiteter er det muligt at udfylde dem ved at kombinere flere indlejrede felter, såsom cover.{url.original, kind, fileName} (se eksempel).
Sortering
Du kan sortere entiteter ved at vælge et felt i modellen, der skal sorteres efter
Sortering efter egenskab med implicit stigende rækkefølge
?orderBy=firstName returnerer følgende JSON-struktur:[{ "firstName": "A" }, { "firstName": "B" }, { "firstName": "C" }]Det er muligt at sortere efter enhver egenskab ved en model, såsom createdAt, title, id osv. ved blot at angive navnet på egenskaben som værdien for forespørgselsparameteren orderBy. Derved sorteres posterne i ascending-rækkefølge (se eksempel)
Sortering efter egenskab i stigende rækkefølge
?orderBy={"key": "firstName", "direction": "DESC"} returnerer følgende JSON-struktur:[{ "firstName": "C" }, { "firstName": "B" }, { "firstName": "A" }]Ved at angive en JSON-struktur med en key og en direction-egenskab, f.eks. {"key": "createdAt", "direction": "DESC"}, får du maksimal kontrol over sorteringen.
- key: Egenskaben, der skal sorteres efter. Eksempler:
createdAt,title,id. - direction: Sorteringsrækkefølgen for posterne. Kan være:
DESC: Posterne sorteres i faldende rækkefølge.ASC: Posterne sorteres i stigende rækkefølge.
Filtre
Det er muligt at oprette og kombinere filtre for at indsnævre det modtagne indhold.
Enkel filtrering med implicit EQUALS-operator
Følgende filter udvælger entiteter, hvor egenskaben title nøjagtigt matcher værdien "How might we improve our products":
?filter={"title":"How might we improve our products"}
Enkel filtrering med eksplicit operator
Følgende filter udvælger entiteter, hvor egenskaben title indeholder delstrengen "How might we".
?filter={"title":{"op": "INCLUDES", "value": "How might we"}}
Her er en liste over alle tilgængelige operatorer:
Operatør | Beskrivelse | Eksempel |
|---|---|---|
ER LIG MED | Kontrollerer, om der er et nøjagtigt match |
|
NOT_EQUALS | Negationen af EQUALS-operatoren | Se EQUALS for et tilsvarende eksempel. |
I | Kontrollerer, om egenskaben er lig med en af de angivne værdier |
|
IS_NULL | Kontrollerer for en null-værdi |
|
IS_NOT_NULL | Negationen af IS_NULL-operatoren | Se IS_NULL for et tilsvarende eksempel. |
INCLUDES | Kontrollerer, om egenskaben indeholder den angivne værdi |
|
NOT_INCLUDES | Negationen af INCLUDES-operatoren | Se INCLUDES for et tilsvarende eksempel. |
INCLUDES_ELEMENT | Kontrollerer, om en JSON-egenskab (f.eks. et array) indeholder den angivne værdi |
|
NOT_INCLUDES_ELEMENT | Negationen af INCLUDES_ELEMENT-operatoren | Se INCLUDES_ELEMENT for et tilsvarende eksempel. |
MINDRE_END | Alle disse udfører en sammenligning med den aktuelle værdi (typisk en ISODate eller et tal). |
|
Grupperet filtrering
Følgende filter vælger entiteter, der er oprettet efter 2020-01-01 OR entiteter, hvor egenskaben id enten er "6b8e6531-cf07-4d1f-be39-68ea22d88c0e" eller "99e5d8b8-c477-4ce9-812e-9822d18adb99" ved at kombinere to filtre, der er adskilt af en OR operator.
?filter={ "op":"or", "filter":[ { "createdAt": {"op":"GREATER_THAN_OR_EQUALS","value":"2020-01-01T00:00:00.000Z"} }, { "id": { "op":"IN", "value":[ "6b8e6531-cf07-4d1f-be39-68ea22d88c0e", "99e5d8b8-c477-4ce9-812e-9822d18adb99" ] } } ] }
Kombineret, dybdegående filtrering
Det følgende filter kombinerer et ydre AND med et indre OR. Det udvælger entiteter, hvor spørgsmålet indeholder "Hvordan kan vi", AND (enten er status "OPEN", ELLER er titlen "Min mission")
?filter={"op":"and","filter":[{"question":{ "op":"INCLUDES","value":"How might we"}},{"op":"or","filter":[{"status":"OPEN" },{"title":"My Mission"}]}]}