Fejl
Alle fejl fra Motorbay API'et har samme form, så én fejlhåndtering dækker hele API'et.
Sådan ser en fejl ud
Fejl er RFC 9457 problem details, sendt som application/problem+json:
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.5",
"title": "Vehicle not found",
"status": 404,
"instance": "/v1/vehicles/plate/AB12345",
"code": "VehicleNotFound",
"requestId": "0HN7Q3C2V4K1M:00000001",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
}
| Felt | Hvad det er |
|---|---|
status |
HTTP-statussen, gentaget i svaret |
code |
Hvad der gik galt, i PascalCase. Forgren på den og på status |
title |
Et kort resumé. Det samme for alle fejl med den code |
detail |
Hvad der skete denne gang, i ord, du kan vise en bruger. Ikke altid med |
instance |
Den sti, du kaldte |
requestId |
Samme værdi som headeren X-Request-Id |
traceId |
Vores interne sporing. Send den med request-id'et, hvis du kontakter os |
errors |
Kun ved ValidationFailed. Se nedenfor |
Forgren på status og code, aldrig på title eller detail: teksten kan ændre sig, en offentliggjort code gør ikke. Håndtér koder, du ikke kender, ud fra deres status, for vi kan tilføje koder til nye situationer.
API'et skriver title og detail på engelsk.
X-Request-Id
Alle svar har headeren X-Request-Id, uanset om de lykkes. Ved en fejl gentager svaret den som requestId. Log den. Det er det første, support spørger efter, og den lader os finde din forespørgsel.
Alle fejlkoder
| Status | Kode | Hvornår | Hvad du skal gøre |
|---|---|---|---|
| 400 | ValidationFailed |
En parameter er forkert formet eller uden for det tilladte | Ret forespørgslen. Den samme forespørgsel fejler igen |
| 401 | ApiKeyMissing |
Ingen X-Api-Key-header |
Send headeren |
| 401 | ApiKeyInvalid |
Nøglen er ukendt, slettet, udløbet eller fra det andet miljø | Tjek nøglen, eller opret en ny |
| 402 | PaymentRequired |
Nøglens konto har intet aktivt abonnement eller prøveperiode | Vælg et abonnement i konsollen |
| 404 | VehicleNotFound |
Intet køretøj med det id, stelnummer eller registreringsnummer | Prøv ikke igen nu. Køretøjet kan dukke op efter en senere import |
| 404 | MakeNotFound |
Intet mærke med det id | Tjek id'et |
| 404 | ModelNotFound |
Ingen model med det id under det mærke | Tjek id'erne |
| 404 | VariantNotFound |
Ingen variant med det id under den model | Tjek id'erne |
| 404 | DesignationTypeNotFound |
Ingen typebetegnelse med det id under den model | Tjek id'erne |
| 404 | ColorNotFound |
Ingen farve med det id | Tjek id'et |
| 404 | KindNotFound |
Ingen art med det id | Tjek id'et |
| 404 | UsageNotFound |
Ingen anvendelse med det id | Tjek id'et |
| 404 | EmissionStandardNotFound |
Ingen euronorm med det id | Tjek id'et |
| 404 | EquipmentNotFound |
Intet udstyr med det id | Tjek id'et |
| 404 | RouteNotFound |
Stien findes ikke | Tjek URL'en og præfikset /v1 |
| 405 | MethodNotAllowed |
En anden metode end GET |
Brug GET. Headeren Allow viser, hvad stien tager imod |
| 429 | RateLimitExceeded |
Mere end 60 forespørgsler dette minut med denne nøgle | Vent de sekunder, Retry-After angiver, og prøv så igen |
| 429 | QuotaExceeded |
Abonnementets forespørgsler for denne måned er brugt | Opgradér abonnementet, eller vent. Retry-After løber til starten af næste måned (UTC) |
| 500 | InternalError |
En fejl hos os | Prøv igen med pauserne nedenfor. Bliver det ved, så send os requestId |
| 503 | DatasetNotLoaded |
GET /v1/dataset, før den første import er færdig |
Prøv igen senere |
| 503 | ServiceUnavailable |
Din API-nøgle kunne ikke kontrolleres lige nu. Nøglen er ikke problemet | Vent det antal sekunder, Retry-After angiver, og prøv igen |
Et listeendpoint under en overordnet ressource, fx /v1/makes/{makeId}/models, svarer 404 med den overordnedes kode (MakeNotFound), når den ikke findes.
Valideringsfejl
En 400 med ValidationFailed fortæller i errors, hvilken regel der fejlede, med en besked for hver:
{
"title": "The request is not valid",
"status": 400,
"code": "ValidationFailed",
"errors": {
"PageSizeOutOfRange": ["Page size must be at least 1 and at most 50."]
}
}
Nøglerne i errors er disse regler:
| Regel | Hvornår |
|---|---|
PageOutOfRange |
page er under 1 eller efter sidste side i et resultat, der ikke er tomt |
PageSizeOutOfRange |
pageSize er under 1 eller over endpointets maksimum |
SortByInvalid |
sortBy er ikke en af de dokumenterede værdier |
SearchTooDeep |
page × pageSize er mere end 10.000 i køretøjssøgning |
RegistrationNumberInvalid |
Et registreringsnummer, i /v1/vehicles/plate/{plate} eller ?registrationNumber=, har andre tegn end A til Z, 0 til 9, Æ, Ø og Å, eller er længere end 10, når mellemrum og bindestreger er fjernet |
En parameter, der ikke er et tal, hvor der forventes et, fx makeId=abc, giver 400 med ValidationFailed og uden errors.
Svar, der ikke er fejl
- 204 No Content. Et køretøjs
/engine,/inspectionog/environmental-informationsvarer204, når køretøjet findes, men registret ikke har sådan en post for det. - En tom liste. En søgning uden resultater er
200med"data": []ogtotalCount0.
Hvornår du skal prøve igen
Alle endpoints er GET, så alle forespørgsler kan trygt gentages. Prøv kun igen ved disse:
- 429: vent det antal sekunder,
Retry-Afterangiver, og prøv så igen. - 500 eller 503: vent 1, 2 og så 4 sekunder, og stop efter tre forsøg.
Prøv aldrig igen ved andre 4xx. Den samme forespørgsel får det samme svar.