Forespørgselsparametre

Hvert API-slutpunkt understøtter følgende indstillinger via URL-forespørgselsparametre:

Forespørgsel

Standard

Eksempel

Beskrivelse

tekst

?text=foo

Søger i og filtrerer indhold baseret på den angivne tekst

grænse

10

?limit=20

Begrænser det samlede antal poster, der kan hentes fra endpointet. Maksimumværdien er 20.

forskydning

0

?offset=10

Justerer forskydningen af de returnerede elementer

orderBy

createdAt

?orderBy=createdAt

Du kan sortere entiteter ved at vælge et felt i modellen, der skal sorteres efter

filter

?filter={"title":"My Mission"}

Det er muligt at opbygge og kombinere filtre for at afgrænse det modtagne indhold.

felter

?fields=id,title,question

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

{ "title": { "op": "EQUALS", "value": "How might we improve our products" } }

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

{ "id": { "op": "IN", "value": ["<guid1>","<guid2>"] } }

IS_NULL

Kontrollerer for en null-værdi

{ "details": { op: "IS_NULL" } }

IS_NOT_NULL

Negationen af IS_NULL-operatoren

Se IS_NULL for et tilsvarende eksempel.

INCLUDES

Kontrollerer, om egenskaben indeholder den angivne værdi

{ "title": { "op": "INCLUDES", "value": "How might we" } }

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

{ "hobbies": { "op": "INCLUDES_ELEMENT", "value": "fishing" } }

NOT_INCLUDES_ELEMENT

Negationen af INCLUDES_ELEMENT-operatoren

Se INCLUDES_ELEMENT for et tilsvarende eksempel.

MINDRE_END
MINDRE_END_ELLER_LIG_MED
IKKE_MINDRE_END
IKKE_MINDRE_END_ELLER_LIG_MED
STØRRE_END
STØRRE_END_ELLER_LIG_MED
IKKE_STØRRE_END
IKKE_STØRRE_END_ELLER_LIG_MED

Alle disse udfører en sammenligning med den aktuelle værdi (typisk en ISODate eller et tal).

{ "rank": { op: "LESS_THAN", value: 5000 } }

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"}]}]}