Sideinddeling
Alle endpoints, der returnerer en liste, gør det én side ad gangen og i samme indpakning.
Indpakningen
curl -H "X-Api-Key: $MOTORBAY_API_KEY" \
"https://api.motorbay.app/v1/kinds?page=1&pageSize=3"
{
"data": [
{ "id": "1", "name": "Personbil", "originalName": "Personbil" },
{ "id": "2", "name": "Stor personbil", "originalName": "Stor personbil" },
{ "id": "3", "name": "Varebil", "originalName": "Varebil" }
],
"metadata": { "page": 1, "pageSize": 3, "totalCount": 15, "totalPages": 5 }
}
| Felt | Betydning |
|---|---|
data |
Denne sides elementer. Aldrig null. En tom liste er [] |
metadata.page |
Den side, du bad om |
metadata.pageSize |
Elementer pr. side |
metadata.totalCount |
Elementer på alle sider |
metadata.totalPages |
Sider ved denne sidestørrelse |
Side og sidestørrelse
pagestarter ved 1. Standard er 1.pageSizeer som standard 10. Den kan højst være 50 på de fleste lister og højst 20 i køretøjssøgning (GET /v1/vehicles).
En værdi uden for det tilladte giver 400 med koden ValidationFailed. Feltet errors navngiver reglen: PageOutOfRange for en page under 1, PageSizeOutOfRange for en pageSize under 1 eller over maksimum.
Læs alle sider
Bed om sider, indtil page er lig med totalPages:
page=1
while :; do
body=$(curl -s -H "X-Api-Key: $MOTORBAY_API_KEY" \
"https://api.motorbay.app/v1/colors?page=$page&pageSize=50")
echo "$body" | jq -c '.data[]'
total=$(echo "$body" | jq '.metadata.totalPages')
[ "$page" -ge "$total" ] && break
page=$((page + 1))
done
En side efter sidste side i en liste med elementer giver 400 med PageOutOfRange, ikke en tom side. En liste uden elementer giver 200 med "data": [], totalCount 0 og totalPages 0, uanset hvilken side du beder om.
Sortering af køretøjssøgning
GET /v1/vehicles tager sortBy. Et - foran sorterer faldende:
| Værdi | Rækkefølge |
|---|---|
-firstRegisteredOn |
Nyeste første registrering først. Standard |
firstRegisteredOn |
Ældste første registrering først |
registrationNumber, -registrationNumber |
Efter registreringsnummer |
vin, -vin |
Efter stelnummer |
id, -id |
Efter id |
Køretøjer uden værdien kommer sidst i begge retninger. Lige værdier afgøres af id, så rækkefølgen er stabil fra side til side. Enhver anden værdi giver 400 med reglen SortByInvalid.
Søgning stopper ved 10.000 resultater
Køretøjssøgning returnerer højst 10.000 resultater for én forespørgsel: page × pageSize må højst være 10.000. Med den største sidestørrelse på 20 er den sidste side, du kan nå, side 500. Beder du om mere, får du 400 med reglen SearchTooDeep.
totalCount fortæller stadig, hvor mange køretøjer der matcher. Indsnævr søgningen for at nå resten. Filtrene kombineres med OG:
| Parameter | Filtrerer på |
|---|---|
makeId |
Mærke |
kindId |
Art, fx Personbil |
usageId |
Anvendelse |
colorId |
Farve |
fromModelYear, toModelYear |
Modelår, begge inklusive |
curl -H "X-Api-Key: $MOTORBAY_API_KEY" \
"https://api.motorbay.app/v1/vehicles?makeId=10279&fromModelYear=2020&toModelYear=2020&pageSize=20"
Hent id'erne til filtrene fra /v1/makes, /v1/kinds, /v1/usages og /v1/colors.
Ændringer, mens du bladrer
Data ændres, når et nyt ugentligt udtræk importeres. Hvis du bladrer gennem et stort resultat hen over en import, kan elementer flytte mellem sider. Tjek GET /v1/dataset før og efter, og start forfra, hvis importedAt har ændret sig. Se Datakilde og aktualitet.